我的Windows 8机器上安装了jdk6和jdk7。 JAVA_HOME环境变量最初指向C:\ Program Files \ Java \ jre7。
我现在正在尝试在Java 1.6下运行程序。我将JAVA_HOME更改为C:\ Program Files \ Java \ jre6,但是当我在命令提示符下键入java -version时,我得到“java version”1.7.0_25“。我甚至删除了与Java相关的所有环境变量并修改了路径变量不包含对Java的任何引用。但是,当我输入java -version(应该失败)时,我得到“java version”1.7.0_25“。
我也尝试将JAVA_HOME更改为“C:\ Program Files \ Java \ jdk1.6.0_45”,java -versio仍然给我“java版本”1.7.0_25“。
有谁知道为什么我无法将Java版本更改为1.6?
我目前的路径是:
c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Windows Live\Shared;%JAVA_HOME%\bin;%M2_HOME%\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;%OPEN_SSL%\bin
答案 0 :(得分:2)
将JAVA_HOME
变量放在%SystemRoot%\system32
之前。 Windows安装程序将java.exe文件添加到Windows \ system32目录。因为它来自JAVA_HOME,所以使用了system32的可执行文件。
(在再次检查java版本之前不要忘记重启控制台)
编辑:上一次java添加到PATH文件夹C:\ProgramData\Oracle\Java\javapath
。在我的情况下,它在PATH的第一个位置。该文件夹包含java.exe javaw.exe和javaws.exe的符号链接。现在你有两个选择。
C:\ProgramData\Oracle\Java\javapath
并添加JAVA_HOME
(或直接指向java bin目录C:\ProgramData\Oracle\Java\javapath
中的符号链接更改为指向正确可执行文件的符号链接。答案 1 :(得分:1)
为了在您直接调用java
时从终端调用正确的JVM,您必须在任何其他可能包含{{1}的目录之前将%JAVA_HOME%/bin
放在您的路径中实施。
如果您使用Java安装程序安装了JVM,则java.exe
中可能会有java.exe
。这个只是一个虚拟实现,它查看注册表并使用最后安装的JVM。
如果您的%SystemRoot%\system32
中有java.exe
并且它没有使用正确的JVM,则您必须正确卸载所有JVM或将%SystemRoot%\system32
放在%JAVA_HOME%\bin
之前在你的道路上。