新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
2022年之前的Java新版本为Java18。您只需编写package关键字和文件夹名称,其中包含java扩展文件和分号,如下所示:
包JavaProgramming;
因为我在JavaProgramming文件中有hello.java文件。注意:在为java编写文件夹名时,不要给空格。像Java编程一样,你必须保持它的样子;Java编程等;
简单hello世界的整个代码结构如下所示:
package JavaProgramming;
public class hello {
public static void main(String[] args) {
System.out.println("Hello java after long time");
}
}
其他回答
有时,可能导致问题的原因与主课无关,我必须通过艰难的方式找到答案。这是我移动的参考库,它给了我:
无法找到或加载主类xxx Linux
我只是删除了那个引用,再次添加,它再次运行良好。
关于外部库的回答-
编译:
javac -cp ./<external lib jar>: <program-name>.java
执行:
java -cp ./<external lib jar>: <program-name>
上述方案在OS X和Linux系统中运行良好。注意类路径中的:。
我有一个奇怪的:
错误:无法找到或加载主类mypackage.App
结果发现,我的项目的POM.xml文件中编码了对POM(父级)的引用(我的项目POM.xml指向父级POM.xml),并且relativePath关闭/错误。
以下是我项目pom.xml文件的一部分:
<parent>
<groupId>myGroupId</groupId>
<artifactId>pom-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../badPathHere/pom.xml</relativePath>
</parent>
一旦我解决了POM relativePath,错误就消失了。
想想看吧
我上升了一级。因此,现在HelloWorld.class文件位于hello\HelloWorld.cclass中,我运行了以下命令。其中cp是类路径和。表示仅签入当前目录。
java -cp . hello.HelloWorld
输出
Hello world!
似乎当我遇到这个问题时,它是独一无二的。
一旦我删除了文件顶部的包声明,它就完美地工作了。
除此之外,似乎没有任何方法在我的机器上运行简单的HelloWorld.java,无论编译发生在哪个文件夹,CLASSPATH或PATH,参数或调用的文件夹。