使用’PlatformUI.getWorkbench()。restart()’重启Eclipse不会重启RCP产品
在调用PlatformUI.getWorkbench().restart()
,应用程序只是关闭并拒绝重新启动产品。
您的IApplication
需要在start
方法中检查PlatformUI.createAndRunWorkbench
的返回码:
最简单的是:
int returnCode = PlatformUI.createAndRunWorkbench(display, advisor); if (returnCode == PlatformUI.RETURN_RESTART) return IApplication.EXIT_RESTART; return IApplication.EXIT_OK;
最近的应用似乎使用这个:
private static final String SYSTEM_PROPERTY_EXIT_CODE = "eclipse.exitcode"; int returnCode = PlatformUI.createAndRunWorkbench(display, advisor); if (returnCode == PlatformUI.RETURN_RESTART) { // eclipse.exitcode system property may be set to re-launch if (IApplication.EXIT_RELAUNCH.equals(Integer.getInteger(SYSTEM_PROPERTY_EXIT_CODE))) return IApplication.EXIT_RELAUNCH; return IApplication.EXIT_RESTART; } return IApplication.EXIT_OK;