环境变量的奇怪问题

时间:2013-09-05 14:03:13

标签: java environment-variables

我的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?我该如何避免呢?

3 个答案:

答案 0 :(得分:2)

这几乎可以肯定是java.exec:\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