0

我的 Windows 7 系统上的环境变量有这个奇怪的问题。它已经存在一年了,我已经解决了,但我现在需要解决它:

我有一个环境变量JAVA_HOME设置为C:\Program Files\Java\jdk1.6.0_39\. 在我的PATH我添加了%JAVA_HOME%\bin;.

但是当我这样做时,当我这样做时,它会按预期java -version打印"1.7.0_11"javac -version1.6.0_39

我不知道为什么1.7.0_11打印为java -version. 我检查了我的PATH并且只添加了一次 JAVA_HOME。我怎么知道哪个环境变量负责使用我的java.exe?我该如何避免呢?

4

3 回答 3

2

它几乎可以肯定是java.exein的一个版本c:\Windows\System32,它可能比引用的部分更早出现在您的路径中JAVA_HOME

于 2013-09-05T14:05:05.693 回答
1

好的,希望%JAVA_HOME\bin%;是一个错字,但如果不是,它应该是%JAVA_HOME%\bin

其余的 -java -version正在寻找您的 JRE,而不是您的 JDK。 javac正在寻找JDK。

检查您是否有与 JRE 相关的环境变量。同样,检查您的路径是否有对 Java 7 JRE 的硬引用。最后,在 C:\Windows\System32 中查看是否java.exe存在。

于 2013-09-05T14:07:11.453 回答
1

Java.exe在windows上安装了两次。第一个位置是您期望的位置:在您的JAVA_HOME. 第二个在c:/windows. 由于此路径总是赢得任何其他用户定义的路径,因此您从这里运行 java。如果您想持有多个 java 环境并通过更改您的JAVA_HOMEjust remove java.exefrom 来在它们之间切换c:/windows

于 2013-09-05T14:13:02.557 回答