如何从 e4 RCP 应用程序打开默认的 p2 安装向导?

How to open the default p2 install wizard from an e4 RCP application?

如果单击我的 e4 RCP 应用程序中的按钮,我将尝试打开默认的 p2 安装向导。

我正在点击处理程序中调用 ProvisioningUI.getDefaultUI().openInstallWizard 以打开向导。

单击此按钮会引发:

java.lang.IllegalStateException: Workbench has not been created yet.
  at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:93)
  at org.eclipse.equinox.internal.p2.ui.ProvUI.getDefaultParentShell(ProvUI.java:155) 
  ...

堆栈跟踪显示,p2 尝试调用 PlatformUI.getWorkbench,但据我所知,这在 e4 应用程序中不受支持,必须使用依赖注入。

如何从 e4 RCP 应用程序打开默认的 p2 安装向导?

提前致谢。

看Help/Install新软件...菜单投稿,好像是命令org.eclipse.equinox.p2.ui.sdk.install提供的。您能否简单地将它添加到您的用户界面或 trigger it programmatically,如 Eclipse wiki 中所述?

我不确定这是否有效或需要兼容层,但值得一试。

由于 p2 UI 依赖于 Eclipse 3.x 兼容模式代码,例如 PlatformUI.getWorkbench 它不能用于纯 e4 应用程序。

您可以使用非UI p2 操作,因为它们不需要兼容模式代码。