“错误:在类MyClass中找不到主要方法,请将主要方法定义为…”

新的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(final String[] args) {

// body of main method follows

...

}

}

入口点方法的特定要求是:

  1. 该方法必须在指定的类中。
  2. 方法的名称必须为“ main” ,且大小写精确为1。
  3. 方法必须是public
  4. 该方法必须为static 2
  5. 方法的返回类型必须为void
  6. 该方法必须仅具有一个参数,并且参数的类型必须为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方法,并且该方法满足上述所有六个要求。

以上是 “错误:在类MyClass中找不到主要方法,请将主要方法定义为…” 的全部内容, 来源链接: utcz.com/qa/417190.html

回到顶部