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

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


当前回答

在我的例子中,我只是在Eclipse中更改JRE。

请查找随附的屏幕截图:

其他回答

在项目上单击鼠标右键。

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

这对我有用。

我以为我不知怎么设置了错误的类路径,但问题是我键入了:

java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool  

而不是:

java -cp C:/java/MyClasses utilities/myapp/Cool   

我认为完全限定的意思是包含完整的路径名而不是完整的包名。

如果是Maven项目:

转到POM文件。删除所有依赖项。保存POM文件。再次只导入必要的依赖项。保存POM文件。

这个问题应该消失。

我有一个奇怪的:

错误:无法找到或加载主类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,错误就消失了。

想想看吧

尝试-Xdiag。

Steve C的回答很好地涵盖了可能的情况,但有时确定类是否无法找到或加载可能不是那么容易。使用java-Xdiag(自JDK7以来)。这将打印出一个漂亮的堆栈跟踪,它提供了消息“找不到或加载主类消息”的含义的提示。

例如,它可以将您指向主类使用的其他类,这些类无法找到并阻止加载主类。