新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
在我的例子中,我得到了错误,因为我在Windows7系统上混合了大写和小写的包名。将包名称改为全小写解决了问题。还要注意,在这个场景中,我将.java文件编译为.class文件时没有出错;它不会从同一个(sub-sub-sub)目录运行。
其他回答
在IntelliJ IDEA中,检查您的全局库*和本地库检查库版本文件pom.xml,可能是旧库前面的答案中提到了很多可能性,也需要尝试
场景:使用命令提示符(Windows中的CMD)编译并运行一个简单的“java”程序,该程序只有“Main.java”文件,并指定了“packagemain”。
源文件路径:
某些项目名称文件夹\src\main\main.java
目标文件夹:
某些项目名称文件夹\dest
目标文件路径(文件夹'\main'和文件'\main.class'将由'javac'生成):
某些项目名称文件夹\dest\main\main.class
Main.java如下:
package main;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
编制:
// 'javac' compiler will produce 'Main.class' in the 'dest\main' folder.
// 'main' folder is created because in the source file(in our case: 'Main.java') is
// specified 'package main'.
javac -d ./dest ./src/main/Main.java
运行编译文件(在本例中为“Main.class”):
// '-cp'(is the same as '-classpath')
// './dest'(means destination folder, where resides compiled 'Main.class').
// 'main.Main'(means 'package' 'main', which contains class 'Main'('Main.class'))
// WARNING: when run 'java' class, MUST NOT type extension '.class'
// after 'class name
// (in our case: 'main.Main'(<package>.<class-name>) WITHOUT extension
// '.class').
java -cp ./dest main.Main
// Hello world
在我的例子中,我只是在Eclipse中更改JRE。
请查找随附的屏幕截图:
另一个让我挠头的场景是:
package com.me
Public class Awesome extends AwesomeLibObject {
....
public static void main(String[] argv) {
System.out.println("YESS0");
}
}
其中AwesomeLibObject是在外部库中定义的类。我收到了同样令人困惑的错误消息:
错误:无法找到或加载主类com。太棒了
解决方法很简单:外部库也必须位于类路径中!
如果源代码名为HelloWorld.java,则编译代码将为HelloWorld.class。
如果使用以下方法调用它,则会出现该错误:
java HelloWorld.class
相反,请使用以下方法:
java HelloWorld