eclipse osgi:如何从特定的bundle加载类

时间:2015-04-25 16:03:14

标签: java eclipse equinox osgi-bundle

我在框架中有两个活动的捆绑包。它们中的每一个都具有相同全名的一组类的版本,例如org.eclipse.jface.util.ILogger。在我的代码中,如果我写

System.out.println(ILogger.class.getClassLoader());

我可以看到类加载器来自其中一个bundle。我的问题是我需要使用另一个类中的那个类,而不是osgi框架选择的“默认”包。也就是说,当我编写像

这样的代码时
ILogger logger = new ILogger(){}...

我需要记录器在另一个包中定义类型。有没有办法做到这一点?我正在使用Eclipse 4.4。感谢

1 个答案:

答案 0 :(得分:1)

玩了一会儿后,我有办法做到这一点。在清单文件的“依赖关系”选项卡上,将一个包保留为“必需的插件”,并将包中的包从“导入的包”中的另一个包中使用。