编译错误 - '错误:无法找到或加载主类com.sun.tools.javac.Main'

时间:2013-12-15 00:03:40

标签: java compiler-errors

我刚开始学习Java而我在计算机上安装了JDK,但现在我正在尝试使用Java的SIMPLIST而不是编译。我在C:/Java/jdk7/上安装了JDK。

每当我尝试编译时,都会收到错误:

Error: Could not find or load main class com.sun.tools.javac.Main

以下是我正在编译的方式:

javac test.java

我也尝试过:

javac.exe test.java

我不知道我的代码是错还是什么,但这是我的test.java

class test {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

这是JAVA_HOME:

C:\Java\jdk7\

任何帮助将不胜感激!

7 个答案:

答案 0 :(得分:18)

您可能已经完成了JDK的手动安装。无论如何,这个错误几乎肯定是由于Java安装中的缺陷造成的。为了解决这个问题,您必须在JAVA_HOME / lib目录中执行以下命令:

  

unpack200 -r -v -l"" tools.pack tools.jar

这将解压工具.jar文件,您的安装(手动或非手动)没有为您完成。之后尝试执行:

  

javac -version

此命令应该可以正常工作。这类似于Java命令可能出现的错误,基本上相同的原因是,您的安装没有解压缩必要的文件。您可以参考以下链接:JRE 1.7 returns: java/lang/NoClassDefFoundError: java/lang/Object

我自己遇到了这个问题,我的解决方案稍微适应了另一个答案。

答案 1 :(得分:2)

安装后重新启动了吗?在重新启动Windows之前,有一些重要的环境变量(即CLASSPATH)未设置。无论如何,您可以通过向rt.jar添加tools.jarCLASSPATH来解决此问题。此外,您应该确保已设置JAVA_HOME

答案 2 :(得分:1)

您的源代码没问题。

错误日志表示无法找到包含tools.jar的类。 Tools.jar始终包含在JDK中。  所以,我猜你使用了错误的JDK。所以,你试着写你安装的javac完整路径。
例)“C:\ Program Files \ java \ jdk1.7.0_25 \ bin \ javac”test.java(windows)

 如果它有效,那么路径变量中的JDK是错误的。因此,您将路径“C:\ Program Files \ java \ jdk1.7.0_25 \ bin \”(例如)添加到路径变量中。
(见http://www.computerhope.com/issues/ch000549.htm))

如果它不起作用,请检查... \ jdk1.7.0_25 \ lib \ tools.jar。如果它不存在,那就错了。所以,你重试安装。
 如果它存在,嗯,我不知道。我建议你重新安装。

答案 3 :(得分:0)

首先确保jdk\lib folder中有一个tools.jar。

如果是,请按照以下步骤操作:

  1. jdk目录

    中的命令提示符中执行以下代码
    for %I in (.) do echo %~sI
    
  2. 即使您不在jdk目录中,只需添加目录名称而不是“。” 。此代码将返回dos路径。复制粘贴JAVA_HOME中的dos路径。

    1. 当您在JAVA_HOME\lib时再次运行上述代码。将粘贴复制到名为CLASSPATH的环境变量中。最后添加"\tools.jar"
    2. 即使它没有帮助尝试重新安装Java(或只是提取tools.jar文件进行交叉检查)。希望它有所帮助

答案 4 :(得分:0)

我的笔记本电脑上有很多JDK版本,今天我遇到了这个问题:将JDK1.7切换到JAVA_HOME之后,我在cmd中键入了javac并得到那个错误。最后,我卸载了JDK1.7,然后重新安装,问题就解决了。

答案 5 :(得分:-1)

我在JDK1.7_67上遇到了这个问题。

我通过分离JDK和JRE安装解决了这个问题。

JDK安装在D:\ Java \ jdk1.7_67中,带有自己的jre / lib文件夹,JRE安装在D:\ Java \ jre1.7_67,带有自己的lib文件夹。

这为我解决了tools.jar问题。

答案 6 :(得分:-1)

"的javac.exe"在jdk的bin文件夹中丢失。检查它,如果它不存在那么只需复制" javac.exe"来自您朋友的任何计算机的java / jdk / bin文件夹中的文件,这些文件也使用java。我希望它会对你有所帮助。谢谢