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