1

我对OSGI片段有一些误解,

假设我部署了一个包含两个类“com.company.C1”和“com.company.C2”的包“B”,其中C1 使用C2。然后,我为主机包“B”部署了一个片段“F”,其中 F 仅包含一个类“com.company.C2”(对第一个类的代码稍作更改)

现在,如果正在执行类“com.company.C1”,将使用哪个类(文件)“com.company.C2”,来自“B”还是来自“F”?

同一个类加载器中存在两次相同的类 C2 会导致运行时错误(相同版本和不同版本)吗?

4

1 回答 1

5

阅读OSGi 核心规范的“3.9.4 总体搜索顺序”一章,一切都会清楚。

简而言之:首先检查包中的类,然后检查片段包。如果您在包和片段包中都有一个类,则片段包中的类将永远不会被使用。

于 2016-09-27T15:59:08.740 回答