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

Rag*_*ram 2 java eclipse eclipse-rcp

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

gre*_*449 6

IApplication需要从检查返回代码PlatformUI.createAndRunWorkbenchstart方法:

最简单的是:

int returnCode = PlatformUI.createAndRunWorkbench(display, advisor);
if (returnCode == PlatformUI.RETURN_RESTART)
   return IApplication.EXIT_RESTART;

return IApplication.EXIT_OK;
Run Code Online (Sandbox Code Playgroud)

最近的应用似乎使用这个:

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;
Run Code Online (Sandbox Code Playgroud)