web-dev-qa-db-ja.com

JAVA_HOMEおよびJava -version

Windowsの.batスクリプトを使用していて、Java_HOMEを実行するとC:/Program Files/Java/jdk1.6.0_32Java -versionに設定しましたが、1.3が表示されます。

どうすればこれを修正できますか?私は何が間違っているのですか?

16
user1345883

%Java_HOME%\bin\Java -versionをお試しください

Java_HOMEを変更する場合、新しいバイナリがパスにない可能性があるため(Java_HOMEを使用)、絶対パスを使用してJavaを呼び出すことをお勧めします(そうすると、Windowsは間違ったロードを行います)バイナリ)。

10
Aaron Digulla

私の場合、問題はPATH変数にあり、_C:\ProgramData\Oracle\Java\javapath;_はJava Windowsインストールの前に_%Java_HOME%\bin;_によって追加されました。したがって、_echo %Java_HOME%_はJDK7と_Java -version_はjdk8を示しています。

_%Java_HOME%\bin;_の前に_C:\ProgramData\Oracle\Java\javapath;_を付けて、_Java -version_がjdk7を表示するようにします。

12
TheBakker

PATH環境変数が%Java_HOME%\binを指していることを確認してください。

6
Óscar López

システム変数パスとユーザー変数システムパスを混在させないように注意してください。絶対パスなしでJavaを呼び出しても問題ないと思います(どのようにJava_HOMEおよびPATHが構成されています)。

2
A_rnO

コマンドラインからJava -versionを呼び出すと、cmd.exeは「既知の」ディレクトリを検索します。 「既知」とは、PATH環境変数を意味します。 PATHに1.6ではなくJava 1.3 binフォルダーが含まれているようです。

Java_HOMEは別の変数であり、Javaラッパー、またはJavaのものを実行するスクリプトによって)使用されます。

これを試してください:

SET Java_HOME=C:/Program Files/Java/jdk1.6.0_32
%Java_HOME%/bin/Java -version

必要に応じて引用符を追加します。

0
npe

今日同様のシナリオがありました-2つのWindows10デバイス-両方ともJRE1.6と1.7を持っています。

入力するとき

 Java -version 

1つのデバイスは1.6を示し、他のデバイスは1.7を示します。

これにより、サードパーティのJARを実行して、1.6を示すデバイスにソフトウェアをインストールできませんでした(Java -version)を実行すると、1.7を示すデバイスで正常に動作しました)。

  Java -jar ThirdParty.jar 

JARは1.7で実行する必要があったため。

これの原因はPATH環境変数にありました-1つのデバイスはPATHリストの最初に1.6の場所を持っていました、1.6の場所の上に1.7の場所を移動すると、Java -versionを使用して一貫性があり、私を許可しましたソフトウェアをインストールします。

0
user3811820

同様の問題がありました。私の場合、2つのバージョンJavaがインストールされていました。1つのバージョンのJavaをシステムから完全にアンインストールすることで修正できます。

0
rajeev pani..