我正在使用 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 来修复。