我正在使用 Windows .bat 脚本,我设置JAVA_HOME
为C:/Program Files/Java/jdk1.6.0_32
当我执行 a 时java -version
,它仍然显示 1.3
我怎样才能解决这个问题?我究竟做错了什么?
我正在使用 Windows .bat 脚本,我设置JAVA_HOME
为C:/Program Files/Java/jdk1.6.0_32
当我执行 a 时java -version
,它仍然显示 1.3
我怎样才能解决这个问题?我究竟做错了什么?
对我来说,问题出在我的 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。
尝试%JAVA_HOME%\bin\java -version
如果您修改JAVA_HOME
,通常最好java
使用绝对路径调用(使用JAVA_HOME
),因为新的二进制文件可能不在路径中(然后 Windows 将加载错误的二进制文件)。
确保PATH
环境变量指向%JAVA_HOME%\bin
.
一定不要混用系统变量路径和用户变量系统路径。在没有绝对路径的情况下调用我感觉很好java
(当我知道如何配置时)JAVA_HOME
。PATH
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
在需要的地方添加引号。
今天有一个类似的场景 - 两个 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 版本的一致性,并允许我安装软件。
我有类似的问题,就我而言,我安装了两个版本的 java。它可以通过从系统中完全卸载一个版本的 java 来修复。