我有一个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())
将在您插件的任何类中运行,而不仅是激活器。