我之前从未使用插件片段.我认为通过在片段中创建一个新类并在片段的清单中导出包含它的包,我可以从另一个已经依赖于主机插件的插件访问该类.但是,我似乎无法做到这一点.除了主机插件之外,任何插件是否都可以看到片段的内容?如果是这样的话,我有什么特别的事情可以做到这一点吗?
我正在构建一个Eclipse插件,它在常规插件项目中提供了一组核心功能.我通过片段项目提供的可选功能.但我需要片段在启动时使用主插件注册自己.
我不能在片段项目中拥有Bundle-Activator.所以我想知道是否有一些替代机制来声明我可以挂钩的入口点或某些回叫?
如果除了将片段项目转换为常规插件项目之外别无选择,那么我需要注意一个缺点吗?
这是我根据接受的答案使用的解决方案:
final IExtensionRegistry registry = Platform.getExtensionRegistry();
final IExtensionPoint extensionPoint = registry.getExtensionPoint("myextensionid");
final IExtension[] extensions = extensionPoint.getExtensions();
for (int j = 0; j < extensions.length; ++j)
{
final IConfigurationElement[] points = extensions[j].getConfigurationElements();
for (int i = 0; i < points.length; ++i)
{
if ("myelementname".equals(points[i].getName()))
{
try
{
final Object objImpl= points[i].createExecutableExtension("class");
objImplList.add(provider);
}
catch (CoreException e)
{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)