java – “错误:在MyClass类中找不到主要方法,请将main方法定义为……”
作者:互联网
新Java程序员在尝试运行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
Error: Main method is not static in class MyClass, please define the main method as:
public static void main(String[] args)
Error: Main method must return a value of type void in class MyClass, please
define the main method as:
public static void main(String[] args)
java.lang.NoSuchMethodError: main
Exception in thread "main"
这是什么意思,什么可以导致它,以及应该怎么做才能解决它?
解决方法:
使用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.
>该方法必须是公开的.
>该方法必须是静态的2.
>方法的返回类型必须为void.
>该方法必须只有一个参数,而参数的类型必须是String [] 3.
(可以使用varargs语法声明参数;例如String … args.有关更多信息,请参阅this question. 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"
如果遇到此错误,请检查您是否有主方法,并且它满足上面列出的所有6个要求.
1 – 一个非常模糊的变化是当“main”中的一个或多个字符不是LATIN-1字符时……但是显示时看起来像对应的LATIN-1字符的Unicode字符.
2 – 有关为何要求该方法是静态的说明,请参见Why is the Java main method static?.
3 – String必须对应于java.lang.String,而不是隐藏它的名为String的自定义类.
标签:nosuchmethoderror,java,runtime-error,main 来源: https://codeday.me/bug/20190911/1803597.html