簡體   English   中英

與OSGI中的類加載相混淆

[英]Confused with classloading in OSGI

我有一個RCP項目,遇到了問題。 我有一個OSGI jar,比如說jar-A,它從另一個osgi jar導入了一些軟件包,比如jar-B。 現在,我又有了一個osgi jar-C,它的包結構與jar-A相同,但其中的類不同。

我有一個插件說“ plugin-A”,在其構建路徑中同時具有jar-A和jar-B,並具有運行時相關性。 現在,插件A導出jar-A和jar-B的軟件包。

我還有一個“ plugin-B”,在其構建路徑中具有“ jar-C”,並作為運行時依賴項。 現在,plugin-B將plugin-A作為必需的軟件包。 因此,從技術上講,它應該能夠訪問“ jar-A”和“ jar-B”的軟件包對嗎?

現在,plugin-B具有一個從jar-A和jar-C的類導入包的類。 由於它在構建路徑中,因此可以很好地識別jar-C的類,但是不能識別jar-A的類。 它說“無法解析某些X的類的類型。它是從必需的.class文件中間接引用的”,其中某些X類位於jar-A中。 不應從導出此類的必需軟件包插件A中識別出該X類嗎? 當我把這個jar-A放在插件B的捆綁路徑中時,我不再遇到這個問題。

我不確定我是否遵循所有這些規定,但是其他插件只能使用該插件的MANIFEST.MF文件的Export-Package條目中列出Export-Package

在MANIFEST.MF編輯器中,在“導出的程序包”部分的“運行時”選項卡上指定這些。

我的其中一個插件的示例Export-Package部分:

Export-Package: greg.music.core.common,
 greg.music.core.databinding,
 greg.music.core.e4util,
 greg.music.core.editor,
 greg.music.core.preferences,
 greg.music.core.progress,
 greg.music.core.services,
 greg.music.core.showin,
 greg.music.core.util,
 greg.music.core.views,
 greg.music.core.xml

暫無
暫無

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

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