2010-08-22 72 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以確保沒有錯誤。

相關問題