當我們使用javac選項:
-source
和-target
編譯器如何「知道」的代碼產生?javac的源和目標選擇使用
我的意思是,任何編譯器如何知道任何以前的 java版本的規範,或者我必須做一些設置以便爲它提供一些關於它們的信息?
當我們使用javac選項:
-source
和-target
編譯器如何「知道」的代碼產生?javac的源和目標選擇使用
我的意思是,任何編譯器如何知道任何以前的 java版本的規範,或者我必須做一些設置以便爲它提供一些關於它們的信息?
javac
程序知道如何在不提供任何額外信息的情況下處理這些參數。但請注意,這裏有一點陷阱:這些選項與源語法和類文件的形式和內容有關,但它們不包含考慮到Java標準庫。因此,儘管將源代碼版本或目標Java代碼版本設置爲較早的版本,但它們將完全滿足編譯依賴於標準庫類或新Java(例如)Java 7中的方法的代碼。 原則上結果可以運行在較早的Java版本上,但實際上這會要求後面的標準庫至少部分地被回溯。
如果您正在開發爲 Java的特定最低版本,您應該使用該版本開發。如果您或其他人以後希望使用稍後的javac
重建源,而不降低與較早版本的目標Java的運行時兼容性,那麼-source
和-target
選項將發揮作用。
查看相關問題http://stackoverflow.com/questions/21204299/compile-using-source-and-target-javac-options和http://www.codejava.net/java-core/tools/using- javac的命令。 – user1929959