“系统找不到文件C:\ ProgramData \ Oracle \ Java \ javapath \ java.exe”

时间:2014-11-11 12:11:14

标签: java environment-variables

我在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

19 个答案:

答案 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和环境变量相关的所有问题:

  1. 前往Windows“Environment Variables dialog
  2. 系统变量下,选择名为路径的变量。点击修改...
  3. 删除看起来像的条目:

    C:\ProgramData\Oracle\Java\javapath
    
  4. 添加JDK / JRE的bin文件夹的路径。

  5. 不要忘记设置 JAVA_HOME

答案 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_45jdk1.8.0_25有两种版本的jdk。尝试删除第一个即。来自jdk1.6.0_45

PATH

答案 6 :(得分:1)

  1. 从Java控制面板
  2. 卸载计算机上安装的所有JDK
  3. 搜索C:\ProgramData\Oracle\Java并删除该目录及其中包含的所有文件。您可以使用rmdir /S C:\ProgramData\Oracle\Java
  4. 从命令行执行此操作
  5. 然后搜索C:\ ProgramData \ Oracle并删除oracle文件夹。您可以使用rmdir /S C:\ProgramData\Oracle
  6. 执行此操作
  7. 现在安装JDK并设置路径。

  8. 运行程序。您将不会再找到相同的问题。

答案 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)

如果您的公司电脑受到集团政策的限制,这可能会有效......

假设

  1. 您的Windows PATH包含C:\ProgramData\Oracle\Java\javapath
  2. 您已将JDK安装到C:\Program Files\Java\jdk1.8.0_60\bin
  3. 然后创建以下文本文件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%,但同样可以创建指向上述位置路径的符号链接。

  1. 以管理员身份打开CMD
  2. 键入mklink java.exe(Java.exe的完整路径) 例如
  3. mklink java.exe "C:\Program Files\Java\jdk1.8.0_25\bin\java.exe"

答案 14 :(得分:0)

不要担心。 只需卸载jdk以及jdk更新即可 在重新安装jdk之前,删除C:\中programData隐藏文件夹内的oracle文件夹 然后重新安装。 设置以下内容,

JAVA_HOME
CLASSPATH
PATH
JRE_HOME ( is optional)

答案 15 :(得分:0)

运行JAVA命令时出现相同的错误。为了解决这个问题,我将java路径移到了路径的第一个条目中,它解决了这个问题。请查看此屏幕截图以供参考:

enter image description here

答案 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 \现在已创建为结点,不再有符号链接