Java错误:线程中出现异常;“主要”;java.lang.NoSuchMethodError:main

Java错误:线程中出现异常;“主要”;java.lang.NoSuchMethodError:main,java,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; } } 有人能告诉我为什么以及如何修改代码吗?main方法应该是: publicstaticvoidmain(字符串[]args) 而不

我在Java中运行以下代码时遇到了这个问题:

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

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

main
方法应该是:

publicstaticvoidmain(字符串[]args)

而不是:

publicstaticbooleanmain(String[]args)

你可能想做这样的事情:

 public static boolean check() 
 {
     if (0.1 + 0.1 + 0.1 == 0.3) return true;
        else return false;
 }
然后从静态main调用它:

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

  • 想想看。一旦主方法完成,并不意味着程序就完成了。如果它生成了一个新线程,则可能是这些线程仍在运行
为什么main是公共的?

  • JVM调用main方法来运行项目范围之外的方法
为什么main是静态的?

  • 当JVM调用main方法时,被调用的类不存在对象。所以它必须有一个静态方法来允许这个类

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

公共静态void main(字符串[]args){


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

通过从main返回
布尔值,你想做什么?啊……我明白你的想法。这是否意味着我不能在main函数中使用布尔值?是的,这正是我希望做的!它很完美。
public static void main(String[] args)
{
    boolean result = check();
    //now you can print, pass it to another method.. etc..
}