Java找不到方法main
我有一个简单的你好世界计划的麻烦哈哈! 我希望有人可以对此有所了解。
所以收到的错误如下:
$ 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上。
问题是您的方法不将String数组作为参数。 请改用以下签名:
public static void main(String[] argv)
要么
public static void main(String argv[])
其他有效选项是:
public static void main(String ... argv)
在Java语言规范中,这被告知如下:
方法main必须声明为public,static和void。 它必须指定一个forms参数(第8.4.1节),其声明的类型是String数组。
主方法有签名接受String[]
并且你写了错误的String
,
做了
public static void main(String[] argv)
或者varargs
public static void main(String... argv)
你忘了放数组语法,你甚至可以按照JAVA 1.5使用varargs
public static void main(String... argv)
你忘了String[] argv
中的String[] argv
或String... argv
中的String... argv
此数组用于存储在为类创建JVM的命令中使用的参数
java Hello argument0 argument1 argument2`
等等。
问题是main
签名,应该是
public static void main(String[] argv)
或者可能
public static void main(String ... argv) // known as varargs
而不是在您的情况下public static void main(String argv)
看看这个
为varargs 看
public static void main(String[] args) public static void main(String... args) public static void main(String args[])
Java程序开始在main方法执行,该方法具有上述方法原型
你的主要方法签名是错误的String
而不是String []
使用
public static void main(String[] argv)
要么
public static void main(String... argv)
在这里阅读