Java错误:线程“main”中的异常java.lang.NoSuchMethodError:main

时间:2013-03-30 21:12:42

标签: java

在Java中运行以下代码时出现此问题:

public class comparison
{
    public static boolean main(String[] args)
    {
        if (0.1 + 0.1 + 0.1 == 0.3) return true;
        else return false;
    }
}

有人可以告诉我为什么以及如何修改代码?

2 个答案:

答案 0 :(得分:3)

main方法应该是:

public static void main(String[] args)

而不是:

public static boolean main(String[] args)

你可能想做这样的事情:

 public static boolean check() 
 {
     if (0.1 + 0.1 + 0.1 == 0.3) return true;
        else return false;
 }

然后从 static main

中调用它
public static void main(String[] args)
{
    boolean result = check();
    //now you can print, pass it to another method.. etc..
}

为什么main无效(不返回任何内容)?

  • 想一想。主方法完成后,并不意味着程序完成。如果它产生新线程,则可能是这些线程仍在运行。

为什么主要公开?

  • JVM调用 main 方法来运行项目范围之外的方法。

为什么main是静态的?

  • 当JVM调用main方法时,正在调用的类中存在 no object 。所以它必须有静态方法来允许这种类。

答案 1 :(得分:0)

要从命令行执行,Java类必须实现带签名的静态方法

public static void main(String [] args){

因为你的返回“boolean”而不是“void”,所以JVM不知道如何执行它。您需要修改该方法,或将其包装在另一个返回类型为“void”的类似方法中。