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

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


当前回答

在项目上单击鼠标右键。

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

这对我有用。

其他回答

这基本上意味着没有静态main(String[]args)方法。它应该自动解决。如果没有,那么当程序被制作(它没有主方法)或程序被打包(清单信息不正确)时,就会出现问题

这是可行的

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

这行不通

public class Hello {
    public Hello() {
        System.out.println("Hello");
    }
}

在测试JavaMongoDB JDBC连接时,我也遇到了类似的错误。我认为简单总结一下我的最终解决方案是很好的,这样将来任何人都可以直接研究这两个命令,并可以继续进行下去。

假设您位于Java文件和外部依赖项(JAR文件)所在的目录中。

编译:

javac -cp mongo-java-driver-3.4.1.jar JavaMongoDBConnection.java

-cp-类路径参数;逐个传递所有从属JAR文件*.java-这是具有main方法的java类文件。标准差分法

Run:

java -cp mongo-java-driver-3.4.1.jar: JavaMongoDBConnection

请在所有依赖JAR文件结束后观察冒号(Unix)/逗号(Windows)最后,观察没有任何扩展名的主类名(没有.class或.java)

如果源代码名为HelloWorld.java,则编译代码将为HelloWorld.class。

如果使用以下方法调用它,则会出现该错误:

java HelloWorld.class

相反,请使用以下方法:

java HelloWorld

如果此问题与Eclipse相关:

尝试将项目添加到类路径中。

请参见下图:

这种方法对我有效。

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

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