2013-02-06 58 views
3

兩個bootdelegation和DynamicImport-包之間的差別會解決的OSGi包的依賴就是通過DynamicImport,包裝進口他們是什麼OSGi的

回答

13

Bootdelegation類加載器加載是一個黑客這是必需的,因爲虛擬機內的一些代碼假定應用程序類裝入器對com.sun。*類具有可見性。在OSGi中,這顯然不是這種情況。引導委派是指定框架可以在引導類路徑上執行查找的包的參數。由於這不是模塊化的,所以不要這樣做。這個框架是全球性的。

DynamicImport-Package與此類似,但僅適用於在其中定義並僅用於導出包的包。如果在普通包內容或導入包中找不到包,那麼DynamicImport-Package將指定允許在一組導出包中搜索的包的模式。這個想法與類路徑相似,你不知道你會得到什麼版本。一旦找到包裹,它就會永久使用。但是,如果沒有找到每個訪問將繼續尋找。即您可以在不重新啓動軟件包的情況下安裝軟件包。

1

軟件包之間的區別都解決了每次需要從包中的類時。所以如果軟件包由於解析過程而不可用,它不會失敗。 通過這種方式,ClassNotFoundExceptions可能在運行時被拋出。 (與此相比,可選進口)

BootDelegation班將從bootdelegation類加載器,這是它加載OSGi框架到JVM http://wiki.osgi.org/wiki/Boot_Delegation http://www2.sys-con.com/itsg/virtualcd/java/archives/0808/chaudhri/index.html http://de.slideshare.net/honnix/osgi-class-loading

相關問題