同一庫Jars 的多個版本:類別載入器處理
管理同一庫的多個版本(例如,httpclient)可能會給Java 帶來挑戰由於類別載入。當專案中的不同框架依賴於該程式庫的特定主要版本時尤其如此。
類別載入器如何處理這個問題?
Java 類別載入器嘗試解決基於其二進位名稱的類別。如果不同載入的 JAR 中存在多個具有相同二進位名稱的類,則適用下列規則:
類別載入器隔離
類別載入器預設保持隔離。這意味著一個類別載入器載入的類別不能直接存取另一個類別載入器載入的類別。但是,如果一個類別存在於多個 JAR 中,則隔離會被破壞,並且可能會發生「重複類別」錯誤。
避免類別載入器衝突
避免類別載入器衝突,建議:
將罐子合併為一個單元
那裡Java 中沒有固有的方式將多個JAR 組合成一個「單元」以用於類別加載目的。但是,可以採用一些技術,例如:
最終,策略的選擇取決於專案的特定需求和可用資源。
以上是Java 類別載入器如何處理相同程式庫 Jar 的多個版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!