新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
这就是我解决问题的方法。
我注意到,如果在编译中包含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
其他回答
类文件位置:C:\test.com\company
文件名:Main.class
完全限定类名:com.company.Main
命令行命令:
java -classpath "C:\test" com.company.Main
请注意,类路径不包括.com\company。
在测试JavaMongoDB JDBC连接时,我也遇到了类似的错误。我认为简单总结一下我的最终解决方案是很好的,这样将来任何人都可以直接研究这两个命令,并可以继续进行下去。
假设您位于Java文件和外部依赖项(JAR文件)所在的目录中。
编译:
javac -cp mongo-java-driver-3.4.1.jar JavaMongoDBConnection.java
-cp-类路径参数;逐个传递所有从属JAR文件*.java-这是具有main方法的java类文件。标准差分法
Run:
java -cp mongo-java-driver-3.4.1.jar: JavaMongoDBConnection
请在所有依赖JAR文件结束后观察冒号(Unix)/逗号(Windows)最后,观察没有任何扩展名的主类名(没有.class或.java)
我无法用这里所述的解决方案来解决这个问题(尽管所述的答案无疑澄清了我的概念)。我两次面对这个问题,每次都尝试了不同的解决方案(在EclipseIDE中)。
首先,我在项目的不同类中遇到了多种主要方法。因此,我已经从随后的类中删除了main方法。其次,我尝试了以下解决方案:右键单击我的主项目目录。前往源代码,然后清理并使用默认设置并单击“完成”。完成一些后台任务后,您将被引导到主项目目录。在那之后,我关闭了我的项目,重新打开它,然后,我终于解决了我的问题。
关于外部库的回答-
编译:
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,错误就消失了。
想想看吧