Platform.getBundle返回null

时间:2017-01-09 13:23:07

标签: java eclipse eclipse-plugin

我有一个eclipse插件,并且已经知道我可以为此检索依赖于工作空间的包路径:

Bundle bundle = FrameworkUtil.getBundle(getClass());
IPath path = Platform.getStateLocation(bundle);

如果我将该代码放入我的Bundle激活器类的start方法中,一切正常。但我需要在我的插件中的另一个类中的路径。

现在,我试着去做'捆绑'像这样:

    bundleID = "de.some.thing.plugin" // ID of that plugin like in plugin.xml
    Bundle bundle = Platform.getBundle(bundleID);
    ...

但是这会返回null。任何人都可以帮助我排除故障或理解它为什么不起作用吗?

1 个答案:

答案 0 :(得分:2)

你不能说bundleId是什么。这必须是一个包含插件ID的字符串 - 这是插件的MANIFEST.MF中Bundle-SymbolicName的值(在任何分号后留下任何内容)。

在MANIFEST.MF编辑器中,这显示在' ID' '概述'标签

注意:FrameworkUtil.getBundle(getClass())将适用于插件中的任何类,而不仅仅是Activator。