我有一个eclipse插件,并且了解到可以像这样检索与工作区相关的包路径:

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


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

现在,我尝试像这样获得“捆绑包”:

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


但这返回null。有人可以帮助我进行故障排除或了解为什么它不起作用吗?

最佳答案

您没有说bundleId是什么。这必须是一个包含插件ID的字符串-这是插件的MANIFEST.MF中Bundle-SymbolicName的值(在分号后保留所有内容)。

在MANIFEST.MF编辑器中,这显示在“概述”选项卡的“标识”字段中。

注意:FrameworkUtil.getBundle(getClass())将在您插件的任何类中运行,而不仅是激活器。

10-06 10:01