有沒有辦法將Eclipse報告編譯錯誤設置爲與javac相同?Eclipse編譯問題
我偶然發現了一些在Eclipse中工作的情況,無法用javac編譯。我知道eclipse使用ECJ,並且不能改變,但是可以在任何地方設置,那些無法用javac編譯的東西在Eclipse中是編譯錯誤? (因爲幾乎沒有什麼東西可以在Eclipse中編譯錯誤,即使它們沒問題)
示例來自@SuiteClasses({A.class,B.class,})
(最後一個逗號是問題),以至於我完全不明白的一般問題。
有沒有辦法將Eclipse報告編譯錯誤設置爲與javac相同?Eclipse編譯問題
我偶然發現了一些在Eclipse中工作的情況,無法用javac編譯。我知道eclipse使用ECJ,並且不能改變,但是可以在任何地方設置,那些無法用javac編譯的東西在Eclipse中是編譯錯誤? (因爲幾乎沒有什麼東西可以在Eclipse中編譯錯誤,即使它們沒問題)
示例來自@SuiteClasses({A.class,B.class,})
(最後一個逗號是問題),以至於我完全不明白的一般問題。
Eclipse使用ECJ進行編譯,通過Java Builder負責編譯和索引所有Java源文件,以便增加編譯的容易性(使得報告錯誤更容易),除了幫助重構和搜索操作。
ECJ恰好是Java構建器使用的默認編譯器;使用的編譯器不能配置。一個不能改變它。但是,您可以嘗試添加您自己的構建器,該構建器使用依賴Sun JDK的javac編譯器的Ant構建腳本。
你可以讓eclipse構建使用ant,這將反過來使用javac。
Eclipse編譯器Java(ECJ)和Javac都基於Java語言規範(JLS),因此應報告相同的錯誤。
但是,有些情況下行爲不同。有時候,原因就像任何大型軟件中的情況一樣,有時JLS有點含糊不清,導致兩種編譯器對它的解釋稍有不同。有時ECJ是錯誤的,有時Javac是錯誤的。
如果您願意,可以將change your Eclipse preferences更具限制性的javac
等同字樣。這將產生警告或錯誤,你編譯時定義的內容 - 你甚至可以定義錯誤/警告的一切!
我已經知道Eclipse使用ECJ,但是我沒有意識到它與Sun的實現相比可以編譯和不能編譯的區別。我認爲有一些標準或規範必須遵循。 – JasCav
是的,我遇到過與OP類似的問題。經驗法則是Eclipse比javac/ant更寬容。因此,將編譯代碼提交給CVS可能會導致持續集成服務器在編譯時生成失敗。 –