新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。

这意味着什么,是什么导致的,你应该如何解决?


当前回答

这里的所有答案似乎都针对Windows用户。对于Mac,类路径分隔符是:,而不是;。作为一个错误,使用;如果从Windows到Mac,则很难发现。

下面是相应的Mac命令:

java -classpath ".:./lib/*" com.test.MyClass

在本例中,包是com.test,类路径中还包含一个lib文件夹。

其他回答

在搜索了两天后,我找到了这个解决方案,并成功了。这很奇怪,但它对我有用。

package javaapplication3;
public class JavaApplication3 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    System.out.println("Hello");
}

}

这是我要运行的程序,位于C:\Java Projects\JavaApplication3\src\JavaApplication3

现在在此位置打开cmd并使用此命令编译程序

javac JavaApplication3.java

编译完成后,向下导航一个目录,即C:\Java Projects\JavaApplication3\src

现在运行以下命令以执行程序

java javaapplication3.JavaApplication3

这是一个具体的案例:

Windows(通过Windows7测试)不接受类和包名称中的特殊字符(如á)。不过,Linux确实如此。

我在NetBeans中构建.jar并尝试在命令行中运行时发现了这一点。它在NetBeans中运行,但不在命令行上运行。

在我的例子中,出现错误是因为我提供了源文件名而不是类名。

我们需要向解释器提供包含main方法的类名。

如果使用IntelliJ并在从IDE运行main方法时出错,只需确保类位于java包中,而不是kotlin中

在项目上单击鼠标右键。

选择“打开模块设置”将src文件夹标记为“sources”转到编辑配置,然后选择主类单击“确定”或“应用”按钮

这对我有用。