Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse rcp 重新启动独立RCp应用程序时出现问题_Eclipse Rcp - Fatal编程技术网

Eclipse rcp 重新启动独立RCp应用程序时出现问题

Eclipse rcp 重新启动独立RCp应用程序时出现问题,eclipse-rcp,Eclipse Rcp,我在重新启动RCP应用程序时遇到问题。当我在Eclipse下运行时,一切正常,但当我创建独立的应用程序方法时,重新启动只需关闭应用程序。我使用下一个代码: IWorkbench workbench=PlatformUI.getWorkbench(); workbench.restart(); 有人知道怎么解决这个问题吗 在这方面,感谢这个线程(它解释了为什么它在从eclipse运行RCP时工作,而不是在独立运行时工作) 如果重新启动工作台,例如通过IWorkbench.restart(),这将导

我在重新启动RCP应用程序时遇到问题。当我在Eclipse下运行时,一切正常,但当我创建独立的应用程序方法时,重新启动只需关闭应用程序。我使用下一个代码: IWorkbench workbench=PlatformUI.getWorkbench(); workbench.restart(); 有人知道怎么解决这个问题吗

在这方面,感谢这个线程(它解释了为什么它在从eclipse运行RCP时工作,而不是在独立运行时工作)

如果重新启动工作台,例如通过
IWorkbench.restart()
,这将导致
PlatformUI.createAndRunWorkbench(…)
将控制权返回给应用程序(应用程序扩展的
iplatformrunable
实现),返回代码为
PlatformUI.return\u restart
(值为1)

然后,应用程序必须将其映射到应用程序返回代码
IPlatformRunnable.EXIT\u RESTART
(值为23)

这将成为Java虚拟机的退出代码(即
System.exit(code)
)。
可执行文件
eclipse.exe
检测到此特殊代码,并使用与第一次相同的命令行参数重新启动Java VM。

如果您没有使用
eclipse.exe
,而是自己直接启动JavaVM,它将不会自动重新启动。你需要自己处理退出代码

因此,您的RCP中这样的代码需要由某种启动器来处理,以便解释(并在需要时重新启动RCP应用程序)现有代码。
(有点像远程RCP管理)

WorkbenchAdvisor workbenchAdvisor = new CoreAppWorkbenchAdvisor();
Display display = PlatformUI.createDisplay();
try {
  int returnCode = PlatformUI.createAndRunWorkbench(display, workbenchAdvisor);
  if (returnCode == PlatformUI.RETURN_RESTART)
    return IPlatformRunnable.EXIT_RESTART;
  else
    return IPlatformRunnable.EXIT_OK;
  }
  finally {
    display.dispose();
  }
}