当我有3个不同的jar加载和它们之间的相互依赖时,OSGi类加载器的行为如何

时间:2012-05-02 11:27:16

标签: eclipse osgi

我很自私地知道这个答案。 我有一个问题,比如我有3罐A,B和C. 现在jar A需要导入jar C版本1.1,而Jar B需要导入jar版本1.5。

  

所以,根据我的理解,就像所有这些jar文件一样   由单独的类加载器加载。所以在加载后如何OSGi   将使用特定的jar来处理不同版本的场景。

1 个答案:

答案 0 :(得分:1)

此方案将要求部署四个捆绑包,A,B和C-1.1以及C-1.5。

  • A已解析(使用自己的类加载器),它将从bundle C-1.1加载任何依赖类。

  • B已解析(使用自己的类加载器),它将从C-1.5包加载任何依赖类。

这允许两个版本的C能够在同一个应用程序中使用,因为它们不会被同一个类加载器加载,因此不会与同名的类存在冲突。