Java找不到方法main

时间:2012-07-30 11:19:14

标签: java

我遇到一个简单的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上。

7 个答案:

答案 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)

varargs

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