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

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


当前回答

如果您的情况与我的情况特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题。

我是这样编译的:

javac HelloWorld.java

我也尝试使用相同的扩展名运行:

java Helloworld.java

当我删除.java并重写类似javaHelloWorld的命令时,程序运行得很好。:)

其他回答

使用关键字“package”

如果源代码中有package关键字(主类在包中定义),则应使用类的全名(packageName.MainClassName)在分层目录中运行它。

假设有一个源代码文件(Main.java):

package com.test;

public class Main {

    public static void main(String[] args) {
        System.out.println("salam 2nya\n");
    }
}

要运行此代码,应将Main.Class放在类似于包的目录中:

C: \Users\workspace\testapp.com\test\Main.Java

然后将终端的当前目录更改为项目的根目录:

cd C:\Users\workspace\testapp

最后,运行代码:

java com.test.Main

没有关键字“package”

如果您的源代码名称中没有任何包,那么可能是您使用了错误的命令。假设您的Java文件名为Main.Java,编译后:

javac Main.java

编译后的代码将是Main.class

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

java Main.class

相反,请使用以下方法:

java Main

在IntelliJ IDEA中,检查您的全局库*和本地库检查库版本文件pom.xml,可能是旧库前面的答案中提到了很多可能性,也需要尝试

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

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

java HelloWorld.class

相反,请使用以下方法:

java HelloWorld

如果您的情况与我的情况特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题。

我是这样编译的:

javac HelloWorld.java

我也尝试使用相同的扩展名运行:

java Helloworld.java

当我删除.java并重写类似javaHelloWorld的命令时,程序运行得很好。:)

如果您的包名为javatpoint,包名为com.javatpoint,类名为AnotherOne,那么编译您的类,如下所示:

cd C:\Users\JAY GURUDEV\eclipse-workspace\javatpoint\src\com\javatpoint
javac AnotherOne.java

并使用

cd C:\Users\JAY GURUDEV\eclipse-workspace\javatpoint\src
java com.javatpoint.AnotherOne

(此处应排除包名称。)