新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
我遇到了同样的问题,最终发现了我的错误:)我使用此命令进行编译,并且运行正常:
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
其他回答
这件事也发生在我身上。在我的例子中,只有在源代码中存在HttpServlet类时才会发生这种情况(IntelliJ IDEA没有给出编译时错误;servlet包导入得很好,但是在运行时出现了这个主类错误)。
我设法解决了。我进入菜单“文件”→ 项目结构…:
然后到模块:
servlet模块附近有一个提供的作用域。我将其更改为编译:
而且成功了!
在Windows上放置。;在开头的CLASSPATH值处。
这个(dot)表示“查看当前目录”。这是一个永久的解决方案。
此外,您还可以通过设置CLASSPATH=%CLASSPATH%;将其设置为“一次”;。。这将在cmd窗口打开时持续。
在搜索了两天后,我找到了这个解决方案,并成功了。这很奇怪,但它对我有用。
package javaapplication3;
public class JavaApplication3 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hello");
}
}
这是我要运行的程序,位于C:\Java Projects\JavaApplication3\src\JavaApplication3
现在在此位置打开cmd并使用此命令编译程序
javac JavaApplication3.java
编译完成后,向下导航一个目录,即C:\Java Projects\JavaApplication3\src
现在运行以下命令以执行程序
java javaapplication3.JavaApplication3
使用此命令:
java -cp . [PACKAGE.]CLASSNAME
示例:如果类名是从Hello.java创建的Hello.class,则使用以下命令:
java -cp . Hello
如果文件Hello.java位于com.demo包中,请使用以下命令
java -cp . com.demo.Hello
在JDK8中,类文件多次出现在同一文件夹中,但java命令需要类路径,因此我们添加了-cp。将当前文件夹作为类路径的参考。
我遇到了同样的问题,最终发现了我的错误:)我使用此命令进行编译,并且运行正常:
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