为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花不似锦 2019-06-23 14:50:13
错误:在类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.ApplicationError: 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"这意味着什么,什么能导致它,一个人应该做什么来解决它?
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

当您使用java命令从命令行运行Java应用程序,例如,

java some.AppName arg1 arg2 ...

该命令加载您指定的类,然后查找调用的入口点方法。main..更具体地说,它正在寻找一种声明如下的方法:

package some;public class AppName {
    ...
    public static void main(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方法,并使其满足上述所有6项要求。


其中一个很难理解的变化是,当“main”中的一个或多个字符不是拉丁文-1字符时.但是一个Unicode字符看上去显示时相应的拉丁文-1字符。

2-见为什么Java Main方法是静态的?以解释为什么要求该方法是静态的。

3 - String必须对应于java.lang.String而不是名为String把它藏起来。


查看完整回答
反对 回复 2019-06-23
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

问题是您没有public void main(String[] args)方法在尝试调用的类中。

  • 一定是

    static

  • 必须有一个字符串数组参数(可以命名为任何)
  • 必须用小写字母拼成m-a-i-n。

注意,您实际上已经指定了一个现有的类(否则错误就会不同),但是这个类缺少主方法。


查看完整回答
反对 回复 2019-06-23
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

其他答案都很好地总结了main..我想收集这些需求文档的引用。

最权威的来源是VM规范(引自第二版)。如main不是语言特性,它在Java语言规范中没有考虑。

另一个很好的资源是应用程序启动程序本身的文档:


查看完整回答
反对 回复 2019-06-23
  • 3 回答
  • 0 关注
  • 3007 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信