web-dev-qa-db-ja.com

Java -versionがJava_HOMEで定義されたバージョンとは異なるバージョンを返すのはなぜですか?

私のJava_HOMEはC:\bea\jdk150_10\bin(Java 1.5)に設定されています。ただし、Java -versionを実行すると、次のようになります。

Java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

1.5バージョンはどのように使用できますか?

20
Jeune

Mikelが言及した のように、あなたのマシンではJavaはC:\Windows\System32\Java.exe

システム環境変数 のパスを John Tが言及 として変更します。

そして、それを変更しますC:\bea\jdk150_10\bin%SystemRoot%\system32パス内。

20
lmeyya

走る

where Java

あなたのコマンドプロンプトで。

私のシステムでは、それはかなり予期しないものを出力しました:

C:\Users\Mikel>where Java
C:\Windows\System32\Java.exe

本当にJavaがあることを確認します:

C:\Users\Mikel>c:\windows\system32\Java.exe -version
Java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

したがって、1つの解決策は、優先するJavaがC:\Windows\System32の前のパスにあることを確認することです。

また、JavaコントロールパネルでC:\Windows\System32のバージョンが管理されているかどうかを確認しましたが、設定の表示のみが可能で、編集はできませんでした。

19
Mikel

Java_HOMEではなく、PATH変数を変更します。

Javaに関するドキュメント PATH変数の設定または変更 に関するドキュメント)を参照してください。

  1. スタート->コントロールパネル->システム->詳細

  2. [環境変数]をクリックし、[システム環境変数]でPATHを見つけてクリックします。

  3. 編集ウィンドウで、PATHの値にクラスの場所を追加して、PATHを変更します。アイテムPATHがない場合は、新しい変数を追加し、PATHを名前として、クラスの場所を値として追加することを選択できます。

  4. 窓を閉めて。

  5. コマンドプロンプトウィンドウを再度開き、Javaコードを実行します。

8
John T

すべてのアプリケーションがJava_HOMEを使用してJDKバージョンを取得するわけではありません。前述のとおり、一部のユーザーは%SystemRoot%\System32\Java.exeを使用しています。 %SystemRoot%\Java.exe -versionを実行して、そのバージョンを確認できます。

他の応答に追加する必要があるのは、Mavenでビルドする場合、Mavenが正しいM2_HOME\binバージョンを使用するためには、%SystemRoot%Java_HOMEの前にある必要があるということです。

4
Mihai Rus

Java_HOMEはビンを指してはいけません!

SET "Java_HOME = C:\ bea\jdk150_10" SET "PATH =%Java_HOME%/ bin;%PATH%"

また、Java_HOMEへのパスが正しいことを確認してください。タイプミスがあり、パスにC:\ Windows\System32 \が含まれている場合、指定したJava.exeの代わりにそのJava.exeが実行されます。

1
Bad Karma

環境変数の詳細設定に移動し、パス変数を編集します。 Javaのどのバージョンでも、そのバージョンパスを他のすべての環境変数より上に移動したいJavaバージョン。

here in the image Java_home environment variable is moved up than Oracle Java environment

1

Win 10の私にとって、javac -versionはJava7を示し、Java -versionはJava8を示しました。コマンドプロンプトで「where Java」を実行すると、3つの場所でJava=が示されました。 JavaをC:\ Windows\System32から削除する必要がありました。パスから「C:\ ProgramFile\Oracle\Java\javapath」と「C:\ ProgramData\Oracle\Java」のエントリを削除しました変数、パス変数のJdk7エントリのみを保持し、2時間の苦労後に機能しました。

0
Sneha Rathod