簡體   English   中英

為什么Java 1.4編譯器不抱怨使用1.5編譯器編譯的第三方庫?

[英]why java 1.4 compiler does not complain about a third party library compiled with 1.5 compiler?

為什么Java 1.4編譯器不抱怨使用1.5編譯器編譯的第三方庫? 在運行時遇到問題UnsupportedClassVersionError。

從Java 1.5開始,類文件格式已稍作更改(例如,保留注釋)。 請參閱編譯器文檔中-target選項。 Java 1.5和更高版本的JVM支持這兩種類文件格式。 Java 1.4 VM(自然地)僅支持較早的格式。

至於為什么編譯器沒有抱怨:編譯器只需要關心自身是否有足夠的信息來正確地編譯被要求編譯的文件; 不是是否可以正確運行它們。 JVM需要擔心正確運行類。 顯然,如果您看到1.4編譯器從其正在編譯的代碼中愉快地引用1.5類,則格式更改不會影響編譯器編譯1.4樣式代碼所需的信息。 我無法立即找到保證該行為的參考,但是如果您正在看到它,那...

暫無
暫無

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

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