如何拆分PlatformUI.getWorkbench()。restart()步骤?

时间:2017-04-12 08:32:48

标签: java eclipse eclipse-plugin eclipse-rcp

我需要在关闭和开始申请之间做一些动作。

所以我正在编写PlatformUI.getWorkbench()。close()来关闭应用程序,我正在执行我需要的操作。现在我不知道如何重新启动工作台。

代码段:

PlatformUI.getWorkbench().close(); <- closing application

//Executing set of task ; <- trying to uninstall some plugins and features. While uninstalling application should not be opened so added above step.

PlatformUI.getWorkbench().restart(); <- again trying to open application but facing swt null pointer exception

1 个答案:

答案 0 :(得分:1)

如果您只是想在关机前做一些事情,请使用:

org.eclipse.ui.application.WorkbenchAdvisor.preShutdown()
org.eclipse.ui.application.WorkbenchAdvisor.postShutdown()

在您的主RCP插件中,应该有一个扩展org.eclipse.ui.application.WorkbenchAdvisor的类。

public class MyApplicationWorkbenchAdvisor extends WorkbenchAdvisor {

    @Override
    public boolean preShutdown() {
        // ... YOUR CODE
    }
}

如果要手动重新启动工作台,可以使用:

PlatformUI.getWorkbench().restart()