簡體   English   中英

Java運行時編譯

[英]Java Runtime compilation

我經常碰到Java X runtimes compiled against Java Y 有人可以解釋這句話的實際含義嗎? 是否存在X必須大於或等於Y的條件,或者可以是任意值嗎? 對於JVM和JDK,這如何工作?

原諒我無法理解這里的邏輯。

如果沒有給出閱讀位置的示例,很難確定您真正要問的是什么。

如果某些內容顯示為“針對Java 6編譯”,則可以在從Java 6及更高版本開始的任何Java運行時中安全地使用它,但是在Java 5運行時及以下版本中,它將失敗並顯示“不受支持的主要類版本”錯誤。

因此,用您自己的話說,X實際上必須等於或大於Y。您選擇在編譯代碼時要支持的最小Java運行時版本。

很長一段時間以來,庫開發人員一直試圖使其代碼與Java 5兼容。 直到最近,我才看到兼容性對Java 6的影響最小。 編譯此類舊的不受支持的運行時的原因很簡單; 這是為了使庫在已安裝和正在使用的最大數量的運行時中運行。 您不能自然地假設每個人都已經升級到了現代Java運行時,仍然有許多需要Java 5運行時的舊程序。

幸運的是,正如SubOptimal所說的那樣,您不必強制使用Java 5 JDK來實際編譯代碼以實現Java 5兼容性。 您也可以使用更新的JDK來生成與舊的運行時兼容的字節碼。 但是,您當然不能使用Java 6來編譯具有Java 8功能的代碼或生成Java 8字節碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM