我在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。
答案 0 :(得分:47)
我遇到了类似的问题,我目前正致力于解决问题。我无法说这会解决您的错误,因为其他软件可能存在问题(这是我的Eclipse Luna的情况)。
Java正在使用PATH变量中给出的路径,即
C:\ProgramData\Oracle\Java\javapath
转到此文件夹(隐藏ProgramData,必要时取消隐藏)并右键单击java.exe符号链接。您将在目标字段中看到它正在寻找java.exe。它可能指向您之前的jdk1.6.0_45安装中的java.exe文件。在这里粘贴新的快捷方式或更改其他人提到的PATH设置。
我发现Java安装程序不会更改javapath或更新系统路径,至少从1.8到1.7时。在我的情况下,更改快捷方式只会导致Eclipse在启动时出现问题。
编辑:----- 在使用javapath文件夹快捷方式后,事实证明你需要符号链接,至少对于Eclipse。请参阅Windows how to create directory symlink。
您不需要文件符号链接的/ d开关,
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"
这对我有用。
答案 1 :(得分:19)
为什么Oracle做出如此糟糕的方式指向java是超出我的。我们通过创建JDK的新链接来解决这个问题
mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\jdk1.8.0_40\bin\"
如果满足要求,那么对于JRE也是如此。
这将替换C:\ProgramData\Oracle\Java\javapath
中的旧符号链接(如果它们之前已存在)
答案 2 :(得分:7)
我在PATH
:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_92\bin;<others omitted>
我删除了:
C:\ProgramData\Oracle\Java\javapath;
这为我解决了这个问题。 java -version
现在提供有关Java版本等的详细信息。
答案 3 :(得分:3)
这将解决与Java和环境变量相关的所有问题:
删除看起来像的条目:
C:\ProgramData\Oracle\Java\javapath
添加JDK / JRE的bin
文件夹的路径。
答案 4 :(得分:2)
更新PATH环境变量
如果未设置PATH变量,则每次运行时都需要指定可执行文件的完整路径,例如:
C:\> "C:\Program Files\Java\jdk1.8.0\bin\javac" MyClass.java
永久设置PATH变量非常有用,因此在重新启动后它将保持不变。
要永久设置PATH变量,请将jdk1.8.0 \ bin目录的完整路径添加到PATH变量中。通常,这条完整路径看起来像
C:\Program Files\Java\jdk1.8.0\bin
。
在Microsoft Windows上按如下方式设置PATH变量:
将JDK安装的bin文件夹的位置添加到System Variables中的PATH变量。
以下是PATH变量的典型值:
C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ Program Files \ Java \ jdk1.8.0 \ bin
注意:强>
PATH环境变量是由分号(;)分隔的一系列目录,不区分大小写。 Microsoft Windows从左到右按顺序查找PATH目录中的程序。
一次只能在路径中为JDK创建一个bin目录。第一个实例后面的那些将被忽略。
如果您不确定在何处添加JDK路径,请将其添加。
新路径在设置PATH变量后打开的每个新命令窗口中生效。
答案 5 :(得分:1)
PATH VARIABLE
jdk1.6.0_45
和jdk1.8.0_25
有两种版本的jdk。尝试删除第一个即。来自jdk1.6.0_45
PATH
答案 6 :(得分:1)
C:\ProgramData\Oracle\Java
并删除该目录及其中包含的所有文件。您可以使用rmdir /S C:\ProgramData\Oracle\Java
rmdir /S C:\ProgramData\Oracle
现在安装JDK并设置路径。
运行程序。您将不会再找到相同的问题。
答案 7 :(得分:1)
这通常在您更新java时发生, 解决这个问题的最简单方法是卸载JDK&amp;然后重新安装它。 注意:这不会删除路径或类路径,因此无需担心。
答案 8 :(得分:1)
从一个版本升级到另一个版本时存在此问题。因为jdk未自动升级。
对于同样的情况,您可以更改环境变量。 在系统变量中查找 PATH 并在字符串前面添加jdk bin位置(不在后面)。 一旦你完成了CMD的检查,如果&#34; java &#34;和&#34; javac &#34;作品。 如果它工作,再次转到系统变量。 添加&#34; CLASSPATH &#34;一个变量和设定值&#34; 即可。 c:\ Program Files \ Java \ jdk1.8.0_91 \ lib; &#34;
答案 9 :(得分:0)
如果您的公司电脑受到集团政策的限制,这可能会有效......
假设
PATH
包含C:\ProgramData\Oracle\Java\javapath
C:\Program Files\Java\jdk1.8.0_60\bin
然后创建以下文本文件mklink.bat
并将其放在桌面上:
rem mklink.bat
mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\jdk1.8.0_60\bin"
pause
现在右键单击它并选择“以管理员身份运行”。提供管理员凭据。该脚本应报告成功。现在您可以编译或运行Java。
答案 10 :(得分:0)
我也有类似的问题,我不得不卸载JDK 1.8并需要jdk 1.7。 我所做的是从javapath中删除了符号链接,然后将java,javaw,javaws的快捷方式从bin目录导入javapath文件夹。但是,我在企业笔记本电脑中发现了一些权限问题,我没有权限修改/更新此目录。我已经给出了管理员的适当许可,并在那里解决了它。
答案 11 :(得分:0)
我从未经许可的帐户安装java8后得到了相同的信息。 要修复我只需从管理员用户帐户重新安装。 这创建了带有java exes文件链接的带引号的目录。
答案 12 :(得分:0)
必须有两个或更多PATH变量。尝试使用分号(;)
将所有这些合并为一个答案 13 :(得分:0)
c:\ProgramData\Java\javapath
用于符号链接。您当然可以将Java路径的完整路径添加到%PATH%
,但同样可以创建指向上述位置路径的符号链接。
CMD
。mklink java.exe
(Java.exe的完整路径)
例如 mklink java.exe "C:\Program Files\Java\jdk1.8.0_25\bin\java.exe"
答案 14 :(得分:0)
JAVA_HOME
CLASSPATH
PATH
JRE_HOME ( is optional)
答案 15 :(得分:0)
答案 16 :(得分:0)
请从Path变量中删除“ C:\ ProgramData \ Oracle \ Java \ javapath \ java.exe”,然后添加您的jdk bin路径。它将起作用。
对于我来说,我已经删除了上述路径并添加了我的JDK路径,即“ C:\ Program Files \ Java \ jdk1.8.0_221 \ bin”
答案 17 :(得分:0)
位于新版本的Java JavaPath文件夹中
64位操作系统
"C:\Program Files \Common Files\Oracle\Java\javapath\"
X86
"C:\Program Files(x86) \Common Files\Oracle\Java\javapath\"
答案 18 :(得分:0)
<> \ Common Files \ Oracle \ Java \ javapath \现在已创建为结点,不再有符号链接