Java 从Eclipse RCP中的另一个插件激活插件

Java 从Eclipse RCP中的另一个插件激活插件,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,我有两个插件,当我从菜单启动它们时,它们可以正常工作。然而,当我点击第一个插件UI上的按钮时,我想启动第二个插件 我已经按照这里的建议研究了getBundle().start()方法:但它没有产生任何结果。第二个bundle在控制台上打印时将其bundle状态显示为ACTIVE,但其UI不会显示在屏幕上 任何帮助都将不胜感激 让您的第二个插件提供一个API,显示单击按钮时第一个插件可以调用的图形。这个API可能只需调用一个方法,它可能与菜单中使用的代码类似 在第二个插件中,将包含API的包添加到

我有两个插件,当我从菜单启动它们时,它们可以正常工作。然而,当我点击第一个插件UI上的按钮时,我想启动第二个插件

我已经按照这里的建议研究了getBundle().start()方法:但它没有产生任何结果。第二个bundle在控制台上打印时将其bundle状态显示为ACTIVE,但其UI不会显示在屏幕上


任何帮助都将不胜感激

让您的第二个插件提供一个API,显示单击按钮时第一个插件可以调用的图形。这个API可能只需调用一个方法,它可能与菜单中使用的代码类似

在第二个插件中,将包含API的包添加到MANIFEST.MF中的“导出包”列表中(在MANIFEST.MF编辑器中,您可以在“导出包”列表中的“运行时”选项卡上执行此操作)


在第一个插件中,将第二个插件添加到其依赖项中——MANIFEST.MF中的“Require Bundle”列表(在编辑器中,这是“dependencies”选项卡上的“Required Plug-ins”)。

我参考了以下帖子:

以下代码终于对我起作用了:

Display.getDefault().asyncExec(new Runnable() {
    @Override
    public void run() {
       PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");

    }
});

激活器启动方法只能由Eclipse本身调用,这将在适当的时间自动完成。第二个插件到底应该做什么?请注意,start方法不是执行GUI操作的合适位置。第二个插件有自己的GUI,它在上面显示图形。我的第一个插件提供了第二个插件可以用来显示图形的信息。不过,我无法以编程方式启动第二个插件。