2009-09-23 223 views
3

有沒有辦法將Eclipse報告編譯錯誤設置爲與javac相同?Eclipse編譯問題

我偶然發現了一些在Eclipse中工作的情況,無法用javac編譯。我知道eclipse使用ECJ,並且不能改變,但是可以在任何地方設置,那些無法用javac編譯的東西在Eclipse中是編譯錯誤? (因爲幾乎沒有什麼東西可以在Eclipse中編譯錯誤,即使它們沒問題)

示例來自@SuiteClasses({A.class,B.class,})(最後一個逗號是問題),以至於我完全不明白的一般問題。

+0

我已經知道Eclipse使用ECJ,但是我沒有意識到它與Sun的實現相比可以編譯和不能編譯的區別。我認爲有一些標準或規範必須遵循。 – JasCav

+0

是的,我遇到過與OP類似的問題。經驗法則是Eclipse比javac/ant更寬容。因此,將編譯代碼提交給CVS可能會導致持續集成服務器在編譯時生成失敗。 –

回答

2

Eclipse使用ECJ進行編譯,通過Java Builder負責編譯和索引所有Java源文件,以便增加編譯的容易性(使得報告錯誤更容易),除了幫助重構和搜索操作。

ECJ恰好是Java構建器使用的默認編譯器;使用的編譯器不能配置。一個不能改變它。但是,您可以嘗試添加您自己的構建器,該構建器使用依賴Sun JDK的javac編譯器的Ant構建腳本。

+0

你能否解釋一下如何改變eclipse來使用ant構建腳本,或者給出一些相關的鏈接? – Sarmun

+1

@Sarmun - 試試這個鏈接http://www.eclipsezone.com/eclipse/forums/t65486.html – JasCav

+0

@Jason,這是一個非常好的鏈接。 –

1

你可以讓eclipse構建使用ant,這將反過來使用javac。

0

Eclipse編譯器Java(ECJ)和Javac都基於Java語言規範(JLS),因此應報告相同的錯誤。

但是,有些情況下行爲不同。有時候,原因就像任何大型軟件中的情況一樣,有時JLS有點含糊不清,導致兩種編譯器對它的解釋稍有不同。有時ECJ是錯誤的,有時Javac是錯誤的。

0

如果您願意,可以將change your Eclipse preferences更具限制性的javac等同字樣。這將產生警告或錯誤,你編譯時定義的內容 - 你甚至可以定義錯誤/警告的一切!