2010-08-22 83 views
4

Possible Duplicate:
Exception in thread “main” java.lang.NoSuchMethodError: main异常线程 “main” java.lang.NoSuchMethodError:主要

我得到了上述消息。代码如下:

class Test 
{ 
public static void main(String ar[]) 
{ 
    printf("hai"); 
} 
} 

这个问题是怎么引起的,我该如何解决?

+0

我很困惑,你怎么连编译它?我的测试:'Sandbox.java:27:找不到符号符号:方法的printf(java.lang.String中)' – TheLQ 2010-08-22 04:31:50

+1

@Lord:其中仅证实了我的怀疑,他不执行,他认为他是在执行:) – BalusC 2010-08-22 04:36:20

+0

类http://stackoverflow.com/questions/5407250/causes-of-java-lang-nosuchmethoderror-main-exception-in-thread-main – 2011-11-23 06:51:32

回答

4

除了这是造成当前异常(见BalusC的答案)的问题,正确的 “Hello World”,在Java是:

class Test 
{ 
    public static void main(String[] args) { 
     System.out.println("hai"); 
    } 
} 

参见:java.lang.System

+0

这只会造成一个** **不同的异常* *的时候,他得到了'main'运行。 – BalusC 2010-08-22 04:11:10

+0

正常惯例是通过把上型declatation :) – BalusC 2010-08-22 04:26:29

+1

括号从基本[阵列教程]的方式(http://download.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html):*然而,惯例不鼓励这种形式;括号标识阵列类型,并且应该以类型名称出现。* – BalusC 2010-08-22 04:47:17

1

我看到你的问题,签名不正确。 它应该是公共静态void main(String [] args)

+2

良好的观察,但不是原因。 – trashgod 2010-08-22 04:08:54

+2

但是它的语法**正确。 – BalusC 2010-08-22 04:10:34

+0

@trashgod:我也是Java新手,我不知道它可以这样写。在C#中,它应该是非法的。 – LLS 2010-08-22 04:21:28

6

您尝试执行的类没有main方法。

由于您main方法看起来语法罚款,这可能有两个原因:

  1. 你执行了错误的类。
  2. 实际的类文件不包含此代码。

解决的办法是显而易见的:

  1. 确保您的命令指向正确的类文件,你可能有多个类文件具有相同的名称和坐在错误的目录。
  2. 确保你以前编译正确的源文件到正确的类文件,你可能已经编辑一个等时忘了重新编译。
+0

我明白你在其他评论中的含义。 – trashgod 2010-08-22 04:17:14

1

它也可能是一个类路径问题,导致Eclipse变得困惑,并且在它尝试运行它时无法找到您的类。我会查看项目属性中的Java Build Path以确保没有错误。

相关问题