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

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


当前回答

类文件位置:C:\test.com\company

文件名:Main.class

完全限定类名:com.company.Main

命令行命令:

java  -classpath "C:\test" com.company.Main

请注意,类路径不包括.com\company。

其他回答

对于数据库连接,我得到了这个。我刚刚在类路径中添加了以下内容:

export CLASSPATH=<path>/db2jcc4.jar:**./**

我在这里附上了。/最后,这样我的类在加载时也会被识别。

现在只需运行:

java ConnectionExample <args>

它工作得很好。

当相同的代码在一台电脑上运行,但在另一台电脑中显示错误时,我找到的最佳解决方案是如下编译:

javac HelloWorld.java
java -cp . HelloWorld

我遇到了同样的问题,最终发现了我的错误:)我使用此命令进行编译,并且运行正常:

javac -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar" qrcode.java

但这个命令对我不起作用(我找不到或加载主类qrcode):

java -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar" qrcode

最后,我只在类路径末尾添加了“:”字符,问题就解决了:

java -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar:" qrcode

这就是我解决问题的方法。

我注意到,如果在编译中包含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

修复它的最简单方法是在这里重新下载Maven Apache:https://maven.apache.org/download.cgi

然后再次设置路径:

系统变量

将您设置Apache Maven文件夹的路径设置为:C:\Program Files\Apache-Maven-3.8.4\bin

重新启动终端或IDE,它应该可以工作。

它总是对我有用。