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


18

私の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バージョンはどのように使用できますか?

回答:



14

走る

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がPATHにあることを確認することC:\Windows\System32です。

また、Javaコントロールパネルでバージョンを管理しているかどうかを確認しようとしましたC:\Windows\System32が、設定を表示することはできましたが、編集することはできませんでした。たぶんそれはあなたのために働きますか?


8

PATHではなく変数を変更しますJAVA_HOME

PATH変数の設定または変更については、Javaのドキュメントを参照してください

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

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

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

  4. 窓を閉めて。

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


PATH変数にjdk 6への参照も表示されません。Java 5 Xのみ)
ジューン

それは...手順はまだ同じで、たとえばだ
ジョン・T

4

すべてのアプリケーションJAVA_HOMEがJDKバージョンの取得に使用するわけではありません。前に述べたように、それらのいくつかはを使用してい%SystemRoot%\System32\java.exeます。%SystemRoot%\java.exe -versionそのバージョンがどれであるかを確認することができます。

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


1

JAVA_HOMEはビンを指すべきではありません!

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

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


0

私にとって勝利10では、javac -versionはjava7を示し、java -versionはjava8を示しました。コマンドプロンプトで「where java」を実行すると、3つの場所でjavaが表示されました。C:\ Windows \ System32からJavaを削除し、パス変数から「C:\ ProgramFile \ Oracle \ Java \ javapath」および「C:\ ProgramData \ Oracle \ Java」のエントリを削除し、パス変数にはJdk7エントリのみを保持する必要がありました2時間の長い闘争の後に働いた。


0

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

ここでは、イメージjava_home環境変数がoracle java環境よりも上に移動しています


-1

これを試して:

@echo off
DOSKEY WHICH=@for %%E in (%PATHEXT%) do @for %%I in ($*%%E) do @if NOT "%%~$PATH:I"=="" echo %%~$PATH:I
SET "JAVA_HOME=C:\Java\jdk1.6"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
where.exe java
WHICH java
pause

-1

私は同じ問題に直面していました。後で、犯人はJava 8であることがわかりました。以前はJava 8をインストールしましたが、Java 8のフォルダーがなく、JAVA_HOMEがjre7に設定されていますが、上記の問題に直面していました。

解決

C:\ ProgramData \ Oracle \ Javaにあるjavapathを削除しました。これでシステムが正常に動作します。また、日食の起動時の問題も解決しました


-2

同じ問題がありました。これを行うことで、問題を解決しました。

Windows 8または10では、環境変数のパスから「C:\ ProgramFile \ Oracle \ Java \ javapath」を削除する必要があります。

これで問題が解決する場合があります。


2
これはすでに提案されており、2年前
ラムハウンド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.