2012-11-01 101 views
1

可能重複:
Override the compiler attribute in an Ant javac task螞蟻build.compiler使用

在螞蟻,究竟什麼時候使用build.compiler選項,或the <javac> taskcompiler屬性?

我試着設置compiler="javac1.5",但是當我在十六進制編輯器打開生成的類文件,類版本仍顯示爲32十六進制(版本1.6)—直到我設置JAVA_HOME指向我的JDK 1.5的安裝。 (在此之前,它一直指向我的JDK 1.6安裝。)所以看起來好像JAVA_HOME取代compiler屬性—在這種情況下,該屬性的用途是什麼?

sourcetarget屬性似乎正常工作;當我指定target版本時,生成的類文件確實具有正確的版本。

回答

4

該屬性的目的是能夠選擇類似gcjjikes而不是標準的JDK編譯器。 javac1.5(和javac1.6等)僅僅是modern的別名,標準編譯器,並且被簡單地定義,以支持規則的build.compiler默認值是javac1.xx匹配運行JDK(所以默認是modern在1.3和更高的和在1.2和以下的classic)。

如果要編譯將在1.5上運行的類,則需要使用source="1.5" target="1.5"並將引導類路徑設置爲指向1.5類庫,以確保不會調用在1.6或更高版本中引入的方法。