2013-08-28 82 views
3

我有一個小問題,其中在Eclipse中編譯的一些java類與由獨立ecj(來自相同的源代碼)編譯的類稍有不同。我如何才能找到eclipse正在使用的ecj版本? (我假設這是區別)如何在eclipse中找到ecj版本?

+0

你用'javac'編譯它們嗎?前段時間我遇到過類似的帖子http://stackoverflow.com/questions/3061654/what-is-the-difference-between-javac-and-the-eclipse-compiler – GGrec

+0

@GGrec在eclipse中,我剛剛編譯通常情況下,它使用ecj afaik。對於獨立編譯,我專門使用了ecj。應該沒有涉及的javac。 – aditsu

+0

呵呵。有趣。我很好奇看到相關的答案。你有沒有機會反編譯你的課程?你如何看待差異? – GGrec

回答

3

ecj的版本由您正在使用的JDT版本指定。轉到幫助 - >關於Eclipse - >安裝細節 - >插件。查找org.eclipse.jdt.core版本。

我猜這會回答你在這裏提出的問題,但可能不會解決你的問題,因爲爲什麼的類是不同的。

你也應該認識到,如果你使用不同的編譯選項,那麼你的類文件可能會有所不同。我忘記了如何在ECJ中指定選項(我認爲你傳入了一個屬性文件)。但在Eclipse中,通過合併工作區和項目選項來指定選項。我猜你的區別來自選項不匹配而不是版本不匹配(只是猜測)。

+0

是的,我對IRC有類似的答案,我即將發佈它。這更像是「幫助 - >關於Eclipse - >安裝細節 - >插件」。我得到的版本是3.8.3.xx-20130703-1700-e42-RELEASE,這似乎暗示了ecj 3.8.3。 – aditsu

+0

我認爲差異是由於優化更改或有時錯誤修復。這也可能是由於不同的選項,但爲了找到答案,我應該首先使用相同的ecj版本:) – aditsu

+0

我看到你安裝了groovy-eclipse,它使用JDT核心插件的補丁版本。如果你想使用相同的ecj,那麼一定要使用groovy-eclipse中的那個。 –