新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
在IntellijIDE中,选择run/debug>>编辑配置,然后为构建和运行菜单选择适当的JDK。
其他回答
在IntelliJ IDEA中,检查您的全局库*和本地库检查库版本文件pom.xml,可能是旧库前面的答案中提到了很多可能性,也需要尝试
这是一个具体的案例:
Windows(通过Windows7测试)不接受类和包名称中的特殊字符(如á)。不过,Linux确实如此。
我在NetBeans中构建.jar并尝试在命令行中运行时发现了这一点。它在NetBeans中运行,但不在命令行上运行。
尝试-Xdiag。
Steve C的回答很好地涵盖了可能的情况,但有时确定类是否无法找到或加载可能不是那么容易。使用java-Xdiag(自JDK7以来)。这将打印出一个漂亮的堆栈跟踪,它提供了消息“找不到或加载主类消息”的含义的提示。
例如,它可以将您指向主类使用的其他类,这些类无法找到并阻止加载主类。
我以为我不知怎么设置了错误的类路径,但问题是我键入了:
java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool
而不是:
java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的意思是包含完整的路径名而不是完整的包名。
另一个让我挠头的场景是:
package com.me
Public class Awesome extends AwesomeLibObject {
....
public static void main(String[] argv) {
System.out.println("YESS0");
}
}
其中AwesomeLibObject是在外部库中定义的类。我收到了同样令人困惑的错误消息:
错误:无法找到或加载主类com。太棒了
解决方法很简单:外部库也必须位于类路径中!