Java 使用';PlatformUI.getWorkbench().restart()';没有重新启动RCP产品
调用方法Java 使用';PlatformUI.getWorkbench().restart()';没有重新启动RCP产品,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,调用方法PlatformUI.getWorkbench().restart()时,应用程序只是关闭并拒绝重新启动产品 您的iaapplication需要在start方法中检查PlatformUI.createAndRunWorkbench中的返回代码: 最简单的是: int returnCode = PlatformUI.createAndRunWorkbench(display, advisor); if (returnCode == PlatformUI.RETURN_RESTART)
PlatformUI.getWorkbench().restart()
时,应用程序只是关闭并拒绝重新启动产品 您的iaapplication
需要在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;
您是否编写了自己的
iaapplication
?没有,我只是调用了restart()@greg-449:除了调用restart()方法之外,我还需要实现什么特定的功能?您是否在Eclipse之外测试重启行为?我询问的原因是:如果您从Eclipse中启动RCP应用程序,那么Eclipse.exe能够检测到此重新启动,然后再次启动您的应用程序。当您自己启动VM时,您需要一些类似的行为-我想这就是@greg-449对iaapplication
的想法。是的,我正在eclipse外部重新启动RCP产品(即,我导出了产品,并尝试重新启动product.exe)。您好@greg-449,即使修改了启动方法(从IAApplication实例派生的类的),我无法重新启动我的产品。我还尝试在远程调试模式下启动该产品,发现退出时断点未命中此方法。我是否遗漏了任何内容?是否确实正在使用iaapplication
?我已发布了我对start方法的使用情况。这看起来很好。是否检查了.log是否有任何崩溃的元数据?可能还有安装“配置”目录中的任何xxx.log。