我需要在关闭和启动应用程序之间做一些动作。

因此,我正在编写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

最佳答案

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

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()

10-04 11:53
查看更多