2017-10-13 20 views
1

私のマシンにインストールされているさまざまなJavaバージョンを調べ、必要に応じていくつかのバージョンをアンインストールします。PowershellのWindowsマシンにインストールされているjavaバージョンの理解

だから私は、次の2つのコマンド以下試してみました:今、なぜノーコマンドによって返されたバージョンがある

PS C:\Users\bhatsubh> java -version 
java version "1.8.0_131" 
Java(TM) SE Runtime Environment (build 1.8.0_131-b11) 
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) 

PS C:\Users\bhatsubh> Get-CimInstance -ClassName Win32_Product | Where-Object { $_.Vendor -match 'Oracle' -and $_.Name -match 'Java'}

Name    Caption     Vendor     Version     IdentifyingNumber 
----    -------     ------     -------     ----------------- 
Java 8 Update... Java 8 Update 131   Oracle Corporation  8.0.1310.11    {26A24AE4-039D-4CA4-8... 
Java 8 Update... Java 8 Update 131 (64-... Oracle Corporation  8.0.1310.11    {26A24AE4-039D-4CA4-8... 
Java SE Devel... Java SE Development Ki... Oracle Corporation  8.0.1210.13    {64A3A4F4-B792-11D6-A... 
Java Auto Upd... Java Auto Updater   Oracle Corporation  2.8.131.11    {4A03706F-666A-4037-7... 

をします。java -version Get-CimInstanceコマンドに記載されていません。

誰か助けてもらえますか?それは私を混乱させます。

+0

はい、どちらのコマンドで正しい出力が得られますか?なぜこの2つの出力が異なるのですか –

答えて

0

は、あなたが知っている必要があり、そののJava SE Development KitのJDK)とのJava SE Runtime EnvironmentのJRE)は同じものではありません。彼らのウェブサイト上の

オラクルは言う:

JDKは、アプリケーションを構築するための開発環境であり、コンポーネントは、Javaプログラミング言語を使用して。

Javaプログラムを実行するが、開発しない場合は、Java Runtime EnvironmentまたはJRE™をダウンロードしてください。あなたが見ることができるように

だから、あなたが持っている:

  • JRE v8.0.1310.11
  • JRE(x64)のv8.0.1310.11
  • JDK v8.0.1210.13

とJava Auto Updater。

java -version 

JREに依存し、それはのJava(TM)SEランタイム環境バージョンを返します。

ビルド1.8.0_131-B118.0.1310.11は同じバージョンです。

0

Javaにインストールされているバージョンに関する情報は、通常、Windowsレジストリにあります。Powershellは、おそらくレジストリ情報を読み込んでいます。あなたができる最善のことはregedit.exeで次のキーを検査することである。これらのキーの下に

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit 

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment 

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK - (Java 9 only) 

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JRE - (Java 9 only) 

あなたがインストールされているJava開発キットおよびJavaランタイム環境に対応したフォルダが表示されます。

バージョンのサブキーには、対応するバージョンがインストールされているディレクトリを含むJavaHomeキーが含まれています。ここで

は、それがどのように見えるべきかの例です:

enter image description here

あなたはWindows PowerShellを使用してレジストリキーを読み取ることができ、このように:

Set-Location -Path "hklm:\SOFTWARE\JavaSoft\Java Development Kit\" 
Get-ItemProperty -Path . 
+0

はい、正しいバージョンがない限り、特定のJavaバージョンをアンインストールするプロセスを自動化するにはどうすればいいですか –

+0

あなたの質問はインストールされているバージョンを理解することでした。それが私が最初に答えようとしたことでした。今度は、キーの読み方についての情報を追加しました。 –

0

あなたPowerShellの出力が切り捨てられ、貼り付けてください全体テキスト。テキストをリダイレクトするのに十分な大きさのモニターがない場合は、JAVA_HOMEのシェル内に何があるかを確認する必要があります。例えば、JAVA_HOMEC:\Program Files\Java\jdk1.8.0_92

powershellは、レジストリを介してコンピュータ上のすべてのインスタンスを検索します。 2つの異なること。出力からJavaを見つけることができない場合は、powershellがクエリを介してレジストリで見つけることができないことを意味します。

マイ出力:

my env: 
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_92 
PS C:\Users\xxx> java -version 
java version "1.8.0_92" 

PS C:\Users\xxx> Get-CimInstance -ClassName Win32_Product | Where-Object { $_.Vendor -match 'Oracle' -and $_.Name -match 'Java' } 

Name    Caption          Vendor          Version          IdentifyingNumber 
----    -------          ------          -------          ----------------- 
Java Configur... Java Configuration Set 1.0 EN    Oracle          1.0           {34E43632-93E0-411C-BC2F-BB6F7A86307F} 
Java(TM) 6 Up... Java(TM) 6 Update 45      Oracle          6.0.450          {26A24AE4-039D-4CA4-87B4-2F83216045FF} 
Java 7 Update 40 Java 7 Update 40       Oracle          7.0.400          {26A24AE4-039D-4CA4-87B4-2F83217040FF} 
Java(TM) 6 Up... Java(TM) 6 Update 45 (64-bit)    Oracle          6.0.450          {26A24AE4-039D-4CA4-87B4-2F86416045FF} 
Java 8 Update... Java 8 Update 92 (64-bit)     Oracle Corporation       8.0.920.14         {26A24AE4-039D-4CA4-87B4-2F86418092F0} 
Java SE Devel... Java SE Development Kit 8 Update 92 (64-... Oracle Corporation       8.0.920.14         {64A3A4F4-B792-11D6-A78A-00B0D0180920} 
Java Auto Upd... Java Auto Updater       Oracle Corporation       2.8.92.14         {4A03706F-666A-4037-7777-5F2748764D10} 

お知らせIdentifyingNumber列(Java Configuration Set 1.0 EN)。それがレジストリで見つかる鍵です。あなたがキーのレジストリに見つかりますたとえば

34E43632-93E0-411C-BC2F-BB6F7A86307F次の情報:

Powershell query for java

そして、それは、PowerShellは見るものです。 JAVA_HOME javaに正しいレジストリエントリがない場合は、powershellの出力に表示されません。あなたはPowerShellを持っている場合は

関連する問題