JAVA_HOME和java -version

时间:2012-05-21 14:22:49

标签: java version environment-variables java-home

我正在使用Windows .bat脚本,并将JAVA_HOME设置为C:/Program Files/Java/jdk1.6.0_32 当我做java -version时,它仍会显示1.3

我该如何解决这个问题?我做错了什么?

6 个答案:

答案 0 :(得分:9)

尝试%JAVA_HOME%\bin\java -version

如果您修改JAVA_HOME,通常最好使用绝对路径(使用java)调用JAVA_HOME,因为新的二进制文件可能不在路径中(并且那么Windows将加载错误的二进制文件。

答案 1 :(得分:9)

对我来说问题出在我的PATH变量中,C:\ProgramData\Oracle\Java\javapath;是在%JAVA_HOME%\bin;之前由java windows install添加的。 所以我echo %JAVA_HOME%指向JDK7,java -version指向jdk8。

我要在%JAVA_HOME%\bin;之前加C:\ProgramData\Oracle\Java\javapath;,以便java -version显示jdk7。

答案 2 :(得分:6)

确保PATH环境变量指向%JAVA_HOME%\bin

答案 3 :(得分:1)

请确保不要混合系统变量路径和用户变量系统路径。在没有绝对路径的情况下调用java我感觉很好(当我知道如何配置JAVA_HOMEPATH时)。

答案 4 :(得分:0)

从命令行调用java -version会导致cmd.exe在“已知”目录上执行查找。 “已知”表示PATH环境变量。看来你的PATH包含一个java 1.3 bin文件夹,而不是1.6。

JAVA_HOME是另一个变量,它由java包装器或执行某些java东西的脚本使用(例如,不仅仅是)。

尝试这样做:

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

在需要的地方添加引号。

答案 5 :(得分:0)

今天的情况类似-两台Windows 10设备-都具有JRE 1.6和1.7。

键入时

 Java -version 

一个设备显示1.6,另一个显示1.7。

这阻止了我运行第三方JAR在显示1.6的设备上安装某些软件(运行java -version时在显示1.7的设备上运行良好),

  java -jar ThirdParty.jar 

由于JAR必须在1.7之前运行。

原因是在PATH环境变量中-一个设备在PATH列表中的位置最先是1.6,将1.7位置移到1.6位置上方会导致使用Java版本的一致性,并允许我安装软件。 / p>