18

我正在使用 Windows .bat 脚本,我设置JAVA_HOMEC:/Program Files/Java/jdk1.6.0_32 当我执行 a 时java -version,它仍然显示 1.3

我怎样才能解决这个问题?我究竟做错了什么?

4

7 回答 7

15

对我来说,问题出在我的 PATH 变量中,C:\ProgramData\Oracle\Java\javapath;是由 java windows install 在我的%JAVA_HOME%\bin;. 所以我会echo %JAVA_HOME%指向一个JDK7并java -version显示jdk8。

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

于 2017-02-10T10:41:54.577 回答
10

尝试%JAVA_HOME%\bin\java -version

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

于 2012-05-21T14:27:34.347 回答
6

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

于 2012-05-21T14:25:13.177 回答
2

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

于 2012-10-24T21:20:55.797 回答
0

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

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

尝试这样做:

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

在需要的地方添加引号。

于 2012-05-21T14:26:45.110 回答
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 版本的一致性,并允许我安装软件。

于 2019-12-11T10:26:37.397 回答
0

我有类似的问题,就我而言,我安装了两个版本的 java。它可以通过从系统中完全卸载一个版本的 java 来修复。

于 2017-05-06T15:40:29.053 回答