新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
类文件位置:C:\test.com\company
文件名:Main.class
完全限定类名:com.company.Main
命令行命令:
java -classpath "C:\test" com.company.Main
请注意,类路径不包括.com\company。
其他回答
如果使用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>
这就是我解决问题的方法。
我注意到,如果在编译中包含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
根据错误消息(“找不到或加载主类”),有两类问题:
找不到Main类无法加载Main类(在接受的答案中未充分讨论此情况)
当完全限定类名中存在拼写错误或语法错误,或者提供的类路径中不存在Main类时,找不到Main类。
当无法启动类时,无法加载Main类。通常,主类扩展另一个类,而该类不存在于提供的类路径中。
例如:
public class YourMain extends org.apache.camel.spring.Main
如果不包括骆驼弹簧,将报告此错误。
有时,在您可能尝试过的一些在线编译器中,如果不编写公共类[Classname],而只编写类[Classname],则会出现此错误。
修复它的最简单方法是在这里重新下载Maven Apache:https://maven.apache.org/download.cgi
然后再次设置路径:
系统变量
将您设置Apache Maven文件夹的路径设置为:C:\Program Files\Apache-Maven-3.8.4\bin
重新启动终端或IDE,它应该可以工作。
它总是对我有用。