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

时间:2010-03-22 21:57:41

标签: java

当我尝试编译时:

public class Risk
{
}
class territory 
{

    public static void main (String[]arg) 
    {
        System.out.println ("hi") ; 
    } 
}

我收到此错误消息:

Exception in thread "main" java.lang.NoSuchMethodError: main

这里出了什么问题?

5 个答案:

答案 0 :(得分:3)

包含main()函数的类必须是公共的,并且每个文件只能定义一个公共类。您需要有两个单独的文件Risk.javaTerritory.java

Risk.java:

public class Risk {
}

Territory.java:

public class Territory 
{

    public static void main (String[]arg) 
    {
        System.out.println ("hi") ; 
    } 
}

编辑:事实证明这不是真的 - 我能够使用以下命令行运行您的初始代码:

java territory

但我之前的评论指出了真实应用的最佳实践,例如风险游戏。

答案 1 :(得分:1)

你想跑什么课?如果你使用的是课程territory,那就行了。不过,Risk没有main方法。

答案 2 :(得分:0)

你能弄清楚为什么这个例子会导致同样的问题吗?

public class Simple {
    public void main(String args[]) {
        System.out.println("Inside function");
    }
}

答案:因为main()应该是公共的静态 void!

答案 3 :(得分:-1)

它只是一个间距问题吗?您的原始帖子在']'和'arg'之间没有显示空格。

试试这个:

public static void main (String[] arg) 

或者,如果仍然不起作用:

public static void main (String arg[]) 

答案 4 :(得分:-1)

最后的答案是,我所经营的班级必须包含main,否则它将无效。我发布这个是因为,尽管其他答案提供了大致相同的信息,但它们并没有明确说明。