Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到javac编译器com.sun.tools.javac.Main不在类路径错误上_Java_Eclipse_Classpath - Fatal编程技术网

找不到javac编译器com.sun.tools.javac.Main不在类路径错误上

找不到javac编译器com.sun.tools.javac.Main不在类路径错误上,java,eclipse,classpath,Java,Eclipse,Classpath,我正在尝试运行java应用程序,但遇到以下错误: 找不到javac编译器;com.sun.tools.javac.Main未打开 类路径。也许JAVA_HOME没有指向JDK 我经历了很多问题,发现解决方案是JAVA\u HOME应该指向JDK,而不是JRE 然后我尝试在命令提示符下打印JAVA_HOME 我已经在我的计算机->属性->环境变量->系统变量中设置了这个JAVA_主页,如下所示 我还使用首选项在eclipse中添加了新变量 最后我还是得到了同样的错误。JAVA_HOME有什么

我正在尝试运行java应用程序,但遇到以下错误:

找不到javac编译器;com.sun.tools.javac.Main未打开 类路径。也许JAVA_HOME没有指向JDK

我经历了很多问题,发现解决方案是JAVA\u HOME应该指向JDK,而不是JRE

然后我尝试在命令提示符下打印JAVA_HOME

我已经在我的计算机->属性->环境变量->系统变量中设置了这个JAVA_主页,如下所示

我还使用首选项在eclipse中添加了新变量

最后我还是得到了同样的错误。JAVA_HOME有什么问题

更新:

eclipse preferences installed jres
中,只有一个条目存在,即jdk和selected

项目属性
java构建路径
-
下,使用了
JRE系统库[jdk1.8.031]

更新1:


C:\Program Files\Java\jdk1.8.0\u 31
的文件夹名为
jre
。导致此问题的是
jre
文件夹吗?我可以删除这个文件夹吗?有没有办法在project中只添加jdk库?

Eclipse是一个IDE,因此它(至少)有两个Java版本:一个是它自己运行的版本(
Java\u HOME
),另一个是它用来运行应用程序的JVM。这两者不需要相同

因此,要解决您的问题,您需要查看Eclipse的首选项,特别是
安装的JRE
,它为您提供了一个Java虚拟机列表,Eclipse将使用这些虚拟机从项目中运行Java代码。我猜那里会有几个条目,默认的条目是JRE而不是JDK

确保列表中有JDK,然后转到您的项目。在项目中,您可以在
Java构建路径
->
下选择要使用的Java虚拟机

[编辑] 仔细看最后一个屏幕截图:您已经将Eclipse配置为使用
C:\ProgramFiles\Java\jdk1.8.0\U 31\jre
,这意味着您已经将它指向了JDK内部的jre。改用
C:\ProgramFiles\Java\jdk1.8.0\u 31
(末尾不带
\jre

[EDIT 2]如果删除
jre
文件夹,Java将停止工作。任何JDK都包含一个JRE。JRE包含
rt.jar
String.class
等。Java编译器位于JDK中的
tools.jar

如果在Eclipse中重新创建JRE条目没有帮助,那么必须手动将其添加到类路径中

您可以使用一个变量(“添加变量…”)来确保在切换到新的/不同的JRE时Eclipse会更新路径。使用扩展名
lib/tools.jar尝试
JAVA\u HOME

  • 在Eclipse中,单击运行->外部工具->外部工具配置
  • 单击JRE选项卡
  • 单击已安装的JRE。。。钮扣
  • 单击添加按钮(选择标准虚拟机,如适用)
  • 单击目录按钮
  • 浏览到已安装Java的JDK版本(非JRE)(例如:C:\Program Files\Java\jdk1.7.0\u 04)
  • 单击Finish
  • 重新运行Ant脚本-玩得开心
    请确认设置变量后是否启动了新控制台?如果它是一个新的控制台,而不是对我来说,其他一切看起来干净和正确,我建议你卸载并重新安装java?有时会出现安装错误。使用.msi或.exe文件安装而不是复制粘贴文件夹。请参阅我的编辑;您已经在JDK中选择了JRE。列表中缺少
    tools.jar
    。它是否存在于
    C:\Program Files\Java\jdk1.8.0\u 31\lib\tools.jar
    中?是的
    tools.jar
    存在于
    C:\Program Files\Java\jdk1.8.0\u 31\lib
    中。在这种情况下,Eclipse不知怎么搞糊涂了。删除首选项中的JRE,并使用路径
    C:\Program Files\Java\jdk1.8.0\u 31
    再次添加它。它应该从
    ..\jre\lib
    中获取一些jar(比如
    rt.jar
    ,其中包含
    String.class
    ),但它还应该列出
    ..\lib\tools.jar
    :-/Eclipse肯定会添加它。在这种情况下,手动将其添加到类路径。您可以使用一个变量(“添加变量…”)来确保在切换到新的/不同的JRE时Eclipse会更新路径。尝试
    JRE\u LIB
    。如果有必要,您可以使用
    /../
    提升一个级别:
    JRE_LIB/../../LIB/tools.jar