2013-05-10 67 views
1

我安裝了Java 6和7。我如何指定ant來使用Java 6進行編譯?我已經看到一些設置java 6編譯器路徑的線程,並且工作正常,但我也看到了像這樣的線程Setting the target version of Java in ant javac,它們在javac任務中設置了一個簡單的屬性。然後有時它說要指定目標和來源。Ant javac目標和源屬性之間的區別?

我在這裏讀到http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#examples但仍不明白這兩個屬性的用法。從oracle文檔看來,似乎source指定了語言規則(例如「這使用java6規則,所以不會有任何嘗試資源塊」),並且target指定要生成的java版本字節碼?該文檔似乎暗示source應該始終設置,但第一個鏈接中的問題怎麼說只是爲了指定target=1.6屬性?

回答

3

ANT本身就是一個Java程序,因此它使用JAVA_HOME環境變量來選擇在運行時使用哪個JVM。

某些ANT任務允許您選擇不同的Java編譯器或JRE,並覆蓋默認選項。欲瞭解更多詳情,請參閱Ant文檔:

更新

我的Java 6和7安裝。我如何指定ant來使用Java 6進行編譯?

目標的javac任務控制兼容性設置屬性。他們不能控制ANT使用哪個JDK。

它們使現代JDK能夠編譯舊版本的Java編程語言和/或生成與較舊版本的Java運行時兼容的字節碼。

是標準選項部分和目標下javac命令的文檔的交叉編譯部從Oracle詳述:

最後,Oracle已經產生關於Java兼容性的以下文件:

它指出了Java 6和Java 7有很強的兼容,這並不總是在Java中的以前版本的情況。

PS 道歉重複相同的鏈接,但希望概念更清晰?

+0

是的,我多少意識到這一點。在我的第二個鏈接(orale javac文檔)中,它講述了「目標」和「源」。但我不確定每個人的用途是什麼。如果我指定了源而不是目標,會發生什麼?目標但不是來源? – Raekye 2013-05-11 19:04:11

+0

@Raekye答覆更新 – 2013-05-12 08:35:10

+0

謝謝,那個鏈接很有用。但要確認,'source'指定了語言定義/語法,'target'指定了要生成的字節碼? – Raekye 2013-05-13 03:36:35

相關問題