当我尝试编译时:
public class Risk
{
}
class territory
{
public static void main (String[]arg)
{
System.out.println ("hi") ;
}
}
我收到此错误消息:
Exception in thread "main" java.lang.NoSuchMethodError: main
这里出了什么问题?
答案 0 :(得分:3)
包含main()
函数的类必须是公共的,并且每个文件只能定义一个公共类。您需要有两个单独的文件Risk.java
和Territory.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
,否则它将无效。我发布这个是因为,尽管其他答案提供了大致相同的信息,但它们并没有明确说明。