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[] argvString... 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) 

在这里阅读