新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
另一个让我挠头的场景是:
package com.me
Public class Awesome extends AwesomeLibObject {
....
public static void main(String[] argv) {
System.out.println("YESS0");
}
}
其中AwesomeLibObject是在外部库中定义的类。我收到了同样令人困惑的错误消息:
错误:无法找到或加载主类com。太棒了
解决方法很简单:外部库也必须位于类路径中!
其他回答
这就是我解决问题的方法。
我注意到,如果在编译中包含jar文件,那么将当前目录(./)添加到类路径中会有帮助。
javac -cp "abc.jar;efg.jar" MyClass.java
java -cp "abc.jar;efg.jar" MyClass
vs.
javac -cp "**./**;abc.jar;efg.jar" MyClass.java<br>
java -cp "**./**;abc.jar;efg.jar" MyClass
如果您的情况与我的情况特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题。
我是这样编译的:
javac HelloWorld.java
我也尝试使用相同的扩展名运行:
java Helloworld.java
当我删除.java并重写类似javaHelloWorld的命令时,程序运行得很好。:)
如果使用IntelliJ并在从IDE运行main方法时出错,只需确保类位于java包中,而不是kotlin中
如果是Maven项目:
转到POM文件。删除所有依赖项。保存POM文件。再次只导入必要的依赖项。保存POM文件。
这个问题应该消失。
如果使用Maven构建JAR文件,请确保在pom.xml文件中指定主类:
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>class name us.com.test.abc.MyMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>