我遇到一个简单的hello世界计划的麻烦哈哈!我希望有人可以对此有所了解。
因此我收到的错误如下:
$ javac Hello.java
$ java Hello
Exception in thread "main" java.lang.NoSuchMethodError: main
因此,通过错误,我可以看到显然缺少主要内容,但它就在那里:
class Hello
{
public static void main(String argv)
{
System.out.println("hello world");
}
}
如果有任何帮助,我在Mac OS / X上。
答案 0 :(得分:10)
问题是你的方法不将String数组作为参数。请改用以下签名:
public static void main(String[] argv)
或
public static void main(String argv[])
其他有效选项是:
public static void main(String ... argv)
在Java语言规范中,这被告知如下:
方法main必须声明为public,static和void。它必须 指定一个形式参数(第8.4.1节),其声明的类型是数组 字符串。
答案 1 :(得分:4)
您忘记了[]
中的String[] argv
或...
中的String... argv
。此数组用于存储在为类创建JVM的命令中使用的参数,如
java Hello argument0 argument1 argument2`
等等。
答案 2 :(得分:4)
主要方法的签名接受String[]
并且你写了String
这是错误的,
成功
public static void main(String[] argv)
public static void main(String... argv)
答案 3 :(得分:4)
你忘了把数组语法, 您甚至可以按照JAVA 1.5使用varargs
public static void main(String... argv)
答案 4 :(得分:2)
问题在于main
签名,应为
public static void main(String[] argv)
或可能是
public static void main(String ... argv) // known as varargs
而不是您所在的public static void main(String argv)
查看this
for varargs look
答案 5 :(得分:2)
public static void main(String[] args)
public static void main(String... args)
public static void main(String args[])
Java程序开始在main方法执行,该方法具有上述方法原型
答案 6 :(得分:1)
您的主要方法签名错误String
而不是String []
使用
public static void main(String[] argv)
或
public static void main(String... argv)
阅读here