Eclipse RCP 获取 class 所在的插件 Id

EclipseRCP get pluginId in which a class is located

我有一个 class T 的对象属于插件 P。 可以通过 class T?

检索插件 ID

我无权访问插件对象,但我可以访问插件 P 的内部 class 对象,我可以访问 PluginClassDescriptor。我可以访问:

P.T object; // I need P.pluginID

谢谢

您可以通过以下方式获取任何插件 class 的 Bundle

Bundle bundle = FrameworkUtil.getBundle(anyobject.getClass());

其中“anyobject”是属于插件的一些 class 的实例。

插件 ID 在捆绑包中称为 'symbolic name':

String pluginid = bundle.getSymbolicName();

FrameworkUtilorg.eclipse.osgi插件中的org.osgi.framework.FrameworkUtil