2010-03-02 59 views
0
試圖編譯下面的代碼,當我遇到問題時

問題嘗試編譯的Hello World與Eclipse

alt text http://img641.imageshack.us/img641/5217/semttulore.png

我第一次嘗試使用此代碼編譯:

class HelloWorldApp { 
    public static void main(String[] args) { 
     System.out.println("Hello World!"); // Display the string. 
    } 
} 

它的工作原理應該如此。現在,如果我嘗試替換任何其他名稱的類名稱,它將不再工作,因爲它似乎總是照看HelloWorldApp。我確定該文件正在保存,所以我甚至重新打開了Eclipse。還是一樣的錯誤。也許這是一個普遍的問題,只是一個小小的解決辦法?

感謝


編輯:我明白你們的意思,但爲什麼當我有文件名爲「Main.java」和「HelloWorldApp的」的類名工作?

回答

6

您需要重命名.java文件以匹配類名稱。

如果您使用重構支持,Eclipse會重命名您的.java文件以自動匹配您的類名稱。右鍵單擊類名,將鼠標懸停在重構上,並選擇重命名選項。現在,當您重命名類時,Eclipse會自動將您的.java文件重命名爲匹配。

+0

...或者在源代碼中選擇類名(或者只是將光標放在其中),然後點擊「Alt + Shift + R」。 – BalusC 2010-03-02 19:48:48

+0

雖然這只是公共課程所必需的。包私有類(未標記爲公共或私有)可以命名爲任何東西。 – 2010-03-02 19:54:16

+0

@mmyers - 你是對的,沒有注意到它是默認的作用域。 Javac從* HellowWorldApp.java *生成* FooBar.class *應該沒有問題。我不確定爲什麼它不起作用;我可以隨意更改(默認範圍)的類名,並且它們在STS 2.3.0中運行良好。 – rcampbell 2010-03-02 20:09:47

2

這就是Java的工作原理。類必須與文件具有相同的名稱。因此,MyApp類的文件名必須是MyApp.java

1

將main重命名爲HelloWorldApp,以便您的應用程序變爲HelloWorldApp.java。

+0

我明白了你的觀點,但如果我保留當前文件名(Main.java),它將與類名HelloWorldApp一起使用! – 2010-03-02 19:48:28

0

更改類的名稱時,使用REFACTOR選項 - 如果您嘗試自己手動編輯名稱,那麼Eclipse項目會丟失跟蹤對象。

+0

我不認爲這是問題。看看右下角,你會發現它正在更新我的班級輪廓。 – 2010-03-02 19:51:54

+0

您是否已經正確設置了Java的CLASSPATH? – MikeC 2010-03-02 19:55:17

+0

不知道:S .. – 2010-03-02 19:59:22

相關問題