使用'PlatformUI.getWorkbench()。restart()'重启Eclipse不会重启RCP产品

时间:2014-07-22 14:58:55

标签: java eclipse eclipse-rcp

在调用方法PlatformUI.getWorkbench().restart()后,应用程序只是关闭并拒绝重新启动产品。

1 个答案:

答案 0 :(得分:6)

您的IApplication需要使用PlatformUI.createAndRunWorkbench方法检查start的返回代码:

最简单的是:

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;