新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

其他回答

首先使用此命令设置路径;

set path="paste the set path address"

然后需要加载程序。在存储的驱动器中键入“cd(文件夹名)”并编译它。例如,如果我的程序存储在D驱动器上,请键入“D:”,然后按enter键并键入“cd”(文件夹名称)。

原因#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

有时,在您可能尝试过的一些在线编译器中,如果不编写公共类[Classname],而只编写类[Classname],则会出现此错误。

有时,可能导致问题的原因与主课无关,我必须通过艰难的方式找到答案。这是我移动的参考库,它给了我:

无法找到或加载主类xxx Linux

我只是删除了那个引用,再次添加,它再次运行良好。

如果您的包名为javatpoint,包名为com.javatpoint,类名为AnotherOne,那么编译您的类,如下所示:

cd C:\Users\JAY GURUDEV\eclipse-workspace\javatpoint\src\com\javatpoint
javac AnotherOne.java

并使用

cd C:\Users\JAY GURUDEV\eclipse-workspace\javatpoint\src
java com.javatpoint.AnotherOne

(此处应排除包名称。)