新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
似乎当我遇到这个问题时,它是独一无二的。
一旦我删除了文件顶部的包声明,它就完美地工作了。
除此之外,似乎没有任何方法在我的机器上运行简单的HelloWorld.java,无论编译发生在哪个文件夹,CLASSPATH或PATH,参数或调用的文件夹。
其他回答
在测试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)
在我的例子中,我只是在Eclipse中更改JRE。
请查找随附的屏幕截图:
如果类在包中,则必须cd到项目的根目录,并使用类的完全限定名称(packageName.MainClassName)运行。
例子:
我的课程在这里:
D:\project\com\cse\
我的主类的完全限定名称是:
com.cse.Main
所以我回到根项目目录:
D:\project
然后发出java命令:
java com.cse.Main
这个答案是为了帮助新手Java程序员摆脱一个常见错误带来的挫折。我建议您阅读公认的答案,以获得有关Java类路径的更深入的知识。
原因#2-应用程序的类路径指定不正确。阅读之前链接的三个文档。(是的……阅读它们!重要的是,Java程序员至少了解Java类路径机制的基本原理。)。
JDK工具和实用程序常规常规信息(文件结构、类路径、如何找到类、更改)增强功能(JDK 7中的增强功能)标准JDK工具与实用程序
https://docs.oracle.com/javase/7/docs/technotes/tools/index.html
https://docs.oracle.com/javase/7/docs/technotes/tools/findingclasses.html
https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html
Java Launcher如何查找类了解类路径和包名
https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html
Java中的ClassLoader Java ClassLoader是Java运行时环境的一部分,它将Java类动态加载到Java虚拟机中。由于类加载器,Java运行时系统不需要了解文件和文件系统。
Java类不会一次加载到内存中,而是在应用程序需要时加载。此时,JRE调用Java ClassLoader,这些ClassLoader将类动态加载到内存中。
https://en.wikipedia.org/wiki/Java_Classloader
https://www.geeksforgeeks.org/classloader-in-java/
https://en.wikipedia.org/wiki/Java_virtual_machine
有时,可能导致问题的原因与主课无关,我必须通过艰难的方式找到答案。这是我移动的参考库,它给了我:
无法找到或加载主类xxx Linux
我只是删除了那个引用,再次添加,它再次运行良好。