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

Nis*_*ede 8 java eclipse classpath

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

无法找到javac编译器; com.sun.tools.javac.Main不在类路径上.也许JAVA_HOME并没有指向JDK

我已经经历了很多SO问题并且发现解决方案是JAVA_HOME应该指向JDK,而不是JRE.

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

在此输入图像描述

我从我的计算机 - > properties-> env变量 - >系统变量中设置了这个JAVA_HOME,如下所示,

在此输入图像描述

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

在此输入图像描述

最后我仍然得到同样的错误.JAVA_HOME怎么了?

更新:

eclipse-preferences-installed jres那里只有一个条目存在,它是jdk并被选中,

在此输入图像描述

而且project properties java build path- libraries有- JRE System Liberary [jdk1.8.0_31]使用.

在此输入图像描述

更新1:

C:\Program Files\Java\jdk1.8.0_31有文件夹命名jre.该jre文件夹是否导致此问题?我可以删除这个文件夹吗?有没有办法在项目中只添加jdk liberary?

Aar*_*lla 10

Eclipse是一个IDE,因此它有(至少)两个Java版本:它用于运行(JAVA_HOME)的一个版本以及用于运行应用程序的JVM.两者不需要相同.

因此,为了解决您的问题,您需要查看Eclipse的首选项,特别是Installed JREs它提供了Eclipse将用于从项目运行Java代码的Java VM列表.我的猜测是那里会有几个条目,默认是JRE而不是JDK.

确保列表中有JDK,然后转到项目.在项目中,您可以在Java Build Path- > 下选择要使用的Java VM Libraries.

[编辑] 仔细看看最后一个截图:你已经配置了Eclipse使用C:\Program Files\Java\jdk1.8.0_31\jre,这意味着你已经将它指向了JDK内部的JRE.C:\Program Files\Java\jdk1.8.0_31改为使用(不包括\jre在最后).

[编辑2]如果删除该jre文件夹,Java将停止工作.任何JDK也包含JRE.在JRE中包含rt.jarString.class等.Java编译器tools.jar位于JDK中.

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

您可以使用变量("添加变量...")来确保Eclipse在切换到新的/不同的JRE时更新路径.尝试JAVA_HOME使用扩展程序lib/tools.jar


小智 5

  1. 在 Eclipse 中点击 Run->External Tools->External Tools Configurations
  2. 单击 JRE 选项卡
  3. 单击已安装的 JRE... 按钮
  4. 单击添加按钮(选择标准 VM,如果适用)
  5. 单击目录按钮
  6. 浏览到已安装 Java 的 JDK 版本(不是 JRE)(例如:C:\Program Files\Java\jdk1.7.0_04)
  7. 单击完成。
  8. 重新运行 Ant 脚本 - 玩得开心!