我的Windows 7系统上有环境变量这个奇怪的问题。它已经存在了一年,我有一个工作,但我现在需要解决它:
我将环境变量JAVA_HOME
设置为C:\Program Files\Java\jdk1.6.0_39\
。在PATH
我已添加%JAVA_HOME%\bin;
。
但当我执行java -version
时,它会打印"1.7.0_11"
,当我执行javac -version
时,它会按预期打印1.6.0_39
我不知道为1.7.0_11
打印java -version
的原因。我检查了我的PATH
并且只添加了一次JAVA_HOME。我怎么知道哪个env变量负责使用我的java.exe
?我该如何避免呢?
答案 0 :(得分:2)
这几乎可以肯定是java.exe
中c:\Windows\System32
的一个版本,它可能在您的路径中比引用JAVA_HOME
的部分更早。
答案 1 :(得分:1)
好的,希望%JAVA_HOME\bin%;
是一个错字,但如果没有,那应该是%JAVA_HOME%\bin
。
其余的 - java -version
正在寻找你的JRE,而不是你的JDK。 javac
正在寻找JDK。
检查您是否有与JRE相关的环境变量。同样,检查您的路径是否有对Java 7 JRE的任何硬引用。最后,查看C:\ Windows \ System32,看看那里是否有java.exe
。
答案 2 :(得分:1)
Java.exe
在Windows上安装两次。第一个位置是您期望的位置:在JAVA_HOME
下。第二个是c:/windows
。由于此路径始终赢得任何其他用户定义的路径,因此您从此处运行java。如果您想要保留多个Java环境并通过更改JAVA_HOME
来切换它们,只需从java.exe
删除c:/windows
。