1

最近,当尝试从命令提示符编译 java 程序时,我收到此错误:

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

我有最新版本的 JDK 和 JRE,但仍然出现错误。这是我在命令行中输入的内容:

C:\Java_Source_Codes>javac hi.java

任何人都可以帮忙吗?

(这是我的java代码)

public class hi{
  public static void main(String[] args){
    System.out.println("hello, world!");
  }
}
4

5 回答 5

1

您需要为 PATH 变量设置编译所需的 Java 工具的路径。

您需要在 Path 系统变量中包含这些文件夹。

D:\Program Files\Java\jdk1.6.0_32\jre;D:\Program Files\Java\jdk1.6.0_32\bin

只需替换D:\Program Files\Java为您在计算机上安装 Java 的文件夹即可。此外,如果您使用的是任何其他版本的 JDK,请替换jdk1.6.0_32为您自己的版本。

于 2012-07-17T15:46:37.877 回答
1

你有很多问题,Kumar 提到了编译问题,但这并不是阻止你的直接问题。

您已JAVA_HOME设置为 Java 运行时环境,但正在javac系统上查找PATH。发生这种情况时,您可以javac从命令行调用,但是当javac检测到JAVA_HOME环境变量时,它会从不包含“java 工具”的目录加载其库,tools.jar. “java工具”的内容包括实现编译器的类。

您可能已经JAVA_HOME设置为类似/some/path/here/jre. 假设该jre目录是 JDK 附带的嵌入式 JRE,您可能应该JAVA_HOME/some/path/here.

于 2012-07-17T15:52:24.007 回答
0

将路径设置为系统中jdk的bin目录..

尝试java -version在 cmd 上键入以查看您的 Java 路径是否设置正确。

我的是..

C:\Program Files\Java\jdk1.7.0\bin
于 2012-07-17T15:46:26.713 回答
0

这是由于您的 PATH 存在一些问题。

快速猜测你的 PATH 上有多个版本的 java

于 2012-07-17T15:46:47.580 回答
0

我遇到了类似的问题,但找到了一个简单的解决方案,也可能适用于您的情况。

我的问题是我只是在 c 目录中创建了一个新文件夹来保存我的 *.java 文件(如测试文件夹)并将我的 PATH 设置为 ...jdk\bin 文件夹。

当我尝试在 cmd 中编译时,我得到了相同的错误 main class not found。

所以我去了环境变量和用户变量,在那里我看到我的 CLASSPATH 指向同一个文件夹。所以我将我的 CLASSPATH 更改为在我的案例 C:\test 中包含我的文件的文件夹,问题就解决了。

希望这可以帮助。

于 2014-02-14T19:38:43.053 回答