2011-01-06 33 views
1

最近當我寫任何代碼,編譯它,然後嘗試運行它,我得到這個異常:就是Java安裝不正確?異常線程「main」 java.lang.NoSuchMethodError

異常線程「main」 java.lang.NoSuchMethodError

起初我以爲我的代碼有問題,但是我找不到任何問題。當試圖運行之前工作過,如果作品HelloWorld例子,但如果我完全相同的代碼複製到一個文件HelloWorld2我再次得到這個例外。

該代碼是相同的,但是當我用javap反編譯兩個類文件我發現的差異。在HelloWorld(原始文件)

"public static void main(java.lang.String[])"; 

HelloWorld2(新一)

"public static void main(String[])"; 

沒有java.lang.

javac重新編譯老HelloWorld,現在當我嘗試運行它,它不工作,我得到了同樣的異常。如果我重新編譯它,我的舊代碼現在都不起作用。

我到處找,但不能找到解決這個問題 - 任何想法是怎麼回事呢?

+0

充分代碼,請 – 2011-01-06 23:43:52

+5

我上氣不接下氣只是讀取。 – 2011-01-06 23:44:36

回答

3

,如果你在你的classpath中有你叫String(不包)自己的類,你可能會得到這個。這聽起來就是這樣發生的。這裏有一個方法來嘗試重現此 - 編譯並運行它,看看它的外觀相同:

class String {} 

public class Test { 
    public static void main(String[] args) { 
    }  
} 

一旦你處在一個尷尬的位置得到了編譯String.class文件在文件系統中,這將被默認使用的基本上即使你只編譯上面的Test類...

,看你能不能找到一個名爲String.class地方。

相關問題