我在Windows 8上使用JDK 8u25,而我的Java安装遇到问题。我可以很好地运行javac
,但是运行java
会产生以下错误消息:
The system cannot find the file C:\ProgramData\Oracle\Java\javapath\java.exe
我该如何解决?
我认为问题与我的环境变量有关。
正如我设置的那样,重要的变量是:
JAVA_HOME
– C:\Program Files\Java\jdk1.8.0_25
CLASSPATH
– .;%JAVA_HOME%\lib
PATH
– <other paths omitted>;%JAVA_HOME%\bin
用cmd中的
set
查看时,它们的扩展为:JAVA_HOME
– C:\Program Files\Java\jdk1.8.0_25
CLASSPATH
– .;C:\Program Files\Java\jdk1.8.0_25\lib;%CLASSPATH%;
PATH
– C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.6.0_45\bin;<other paths omitted>;C:\Program Files\Java\jdk1.8.0_25\bin
set
的完整输出可以在here中查看。 最佳答案
我目前正在解决类似的问题。我不能说这将解决您的错误,因为其他软件可能存在问题(Eclipse Luna就是我的情况)。
Java正在使用PATH变量中给定的路径,即
C:\ProgramData\Oracle\Java\javapath
转到此文件夹(ProgramData已隐藏,因此如有必要,请取消隐藏),然后右键单击java.exe符号链接(symbolic link)。您会在“目标”字段中看到它正在寻找java.exe的地方。它可能指向先前jdk1.6.0_45安装中的java.exe文件。您可以在此处粘贴新的快捷方式,也可以像其他人提到的那样更改PATH设置。
我发现Java安装程序至少在从1.8到1.7时不会更改javapath或更新系统路径。就我而言,更改快捷方式只会导致Eclipse在启动时出现问题。
编辑: - - -
在使用javapath文件夹快捷方式后,事实证明,至少在Eclipse中,您需要符号链接(symbolic link)。参见Windows how to create directory symlink。
您不需要/d开关即可进行文件符号链接(symbolic link),
mklink java.exe "C:\Program Files\Java\jdk1.8.0_20\bin\java.exe"
mklink javaw.exe "C:\Program Files\Java\jdk1.8.0_20\bin\javaw.exe"
mklink javaws.exe "C:\Program Files\Java\jdk1.8.0_20\bin\javaws.exe"
现在这对我有用。