当您使用java命令从命令行运行Java应用程序,例如,java some.AppName arg1 arg2 ...
该命令加载您指定的类,然后查找调用的入口点方法。main..更具体地说,它正在寻找一种声明如下的方法:package some;public class AppName {
...
public static void main(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: main
Exception in thread "main"
如果遇到此错误,请检查是否有main方法,并使其满足上述所有6项要求。
其中一个很难理解的变化是,当“main”中的一个或多个字符不是拉丁文-1字符时.但是一个Unicode字符看上去显示时相应的拉丁文-1字符。
2-见为什么Java Main方法是静态的?以解释为什么要求该方法是静态的。
3 - String必须对应于java.lang.String而不是名为String把它藏起来。