我在OSGi中安装了捆绑A.jar
,我可以使用BundleContext获取此捆绑包
Bundle bundleA = context.getBundle()
和特定的类加载器B
如何将bundleA
中的所有类添加到我的类加载器B
答案 0 :(得分:1)
您无法在运行时执行此操作。您可以向bundle B添加一个Require-Bundle标头。然后bundle B的类加载器将知道bundle A的所有类。但实际上并不是这样。
所以我宁愿问你想用这个来实现什么目标?也许你的问题有另一个解决方案。
答案 1 :(得分:1)
让我假设您正在编写自己的类加载器,并希望使用Bundle A的类加载器作为其父级。您可以按如下方式获取Bundle A的类加载器:
ClassLoader clA = bundleA.adapt(BundleWiring.class).getClassLoader();
然后,您可以使用clA
作为新ClassLoader实例的父级来加载依赖于A类的类。