2013-09-05 99 views
0

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

+2

我明白你的意思是%JAVA_HOME%bin,而不是%JAVA_HOME \ bin% –

+1

这是一个错字。编辑它 – Jatin

回答

2

这几乎可以肯定是c:\Windows\System32java.exe的一个版本,它很可能比你指定的部分更早地出现在JAVA_HOME的部分。

+0

'java.exe'将如何在'System32'中结束? –

+0

@SotiriosDelimanolis:我相信这只是Windows上默认安装的一部分。 –

+0

尝试安装程序时,默认位置是'C:\ Program Files(x86)\ Java \ jre7',除非那是安装程序找到的以前安装的位置。 –

1

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

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

检查是否有与JRE相关的环境变量。另外,请检查您的路径以获取有关Java 7 JRE的任何硬引用。最后,查看C:\ Windows \ System32并查看是否存在java.exe

1

Java.exe在Windows上安装了两次。第一个位置是您期望的位置:在您的JAVA_HOME之下。第二个是c:/windows。由于此路径总是赢得任何其他用户定义的路径,因此您正在此处运行java。如果你想拥有几个java环境,并通过更改JAVA_HOME只需从c:/windows删除java.exe在它们之间切换。