当你使用java命令从命令行运行Java应用程序时,例如,
java some.AppName arg1 arg2 ...
该命令将加载你指定的类,然后查找名为的入口点方法
main。更具体地说,它正在寻找一种声明如下的方法:
package some;public class AppName { ... public static void main(final String[] args) { // body of main method follows ... }}入口点方法的特定要求是:
- 该方法必须在指定的类中。
- 方法的名称必须为
“ main”
,且大小写精确为1。 - 方法必须是
public
。 - 该方法必须为
static 2
。 - 方法的返回类型必须为
void
。 - 该方法必须仅具有一个参数,并且参数的类型必须为String[] 3。
(可以使用
varargs语法来声明参数;例如
String... args,请参阅此问题以获取更多信息。该String[]参数用于从命令行传递参数,即使你的应用程序不接受任何命令行参数,该参数也是必需的。)
如果不满足以上任何条件,则该
java命令将失败,并显示消息的某些变体:
Error: Main method not found in class MyClass, please define the main method as: public static void main(String[] args)or a JavaFX application class must extend javafx.application.Application
或者,如果你运行的Java版本非常旧:
java.lang.NoSuchMethodError: mainException in thread "main"
如果遇到此错误,请检查你是否有main方法,并且该方法满足上述所有六个要求。



