我正在尝试运行Java应用程序,但出现以下错误,
找不到javac编译器;com.sun.tools.javac.Main不在类路径中。也许JAVA_HOME没有指向JDK
我经历了许多SO问题,发现解决方案是JAVA_HOME应该指向JDK,而不是JRE。
然后我尝试在命令提示符下打印JAVA_HOME,
我已经从我的计算机->属性->环境变量->系统变量中设置了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吗?
Eclipse是一个IDE,因此,它(至少)具有两个Java版本:一个用于自身运行(JAVA_HOME
)的Java版本,另一个用于运行应用程序的JVM。两者不必相同。
因此,要解决您的问题,您需要研究Eclipse的首选项,特别是Installed JREs
它为您提供了Java VM列表,Eclipse将使用这些Java VM从项目中运行Java代码。我的猜测是那里会有多个条目,默认条目是JRE而不是JDK。
确保列表中有一个JDK,然后转到您的项目。在项目中,您可以在Java Build Path
->下选择要使用的Java VM Libraries
。
[EDIT]仔细查看最后一个屏幕截图:您已经配置了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.jar
withString.class
等。Java编译器tools.jar
位于JDK中。
如果在Eclipse中重新创建JRE条目无济于事,则必须手动将其添加到类路径中。
您可以使用变量(“添加变量...”)来确保当您切换到新的/不同的JRE时Eclipse更新了路径。尝试JAVA_HOME
扩展lib/tools.jar
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句