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

Java 如何拆分PlatformUI.getWorkbench().restart()步骤?,java,eclipse,eclipse-plugin,eclipse-rcp,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 uni

我需要在关闭和启动应用程序之间执行一些操作

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

PlatformUI.getWorkbench().close() 如果您只是想在关机前做一些事情,请使用:

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

谢谢你的回复。我需要做一些只有在关机后才能工作的任务(使用PlatformUI.getWorkbench().close()。然后我执行我的任务。在那之后,我需要打开相同的工作台(应该在关闭之前获得相同的透视图和视图)。是否可以打开同一个工作台???并启动应用程序?如果使用重新启动方法,则会出现swt空指针异常。
restart()
应返回以前的透视图和视图。如果工作台已经关闭,您在什么时候调用
restart()
。getWorkbench()可能为空。是。是否可以显式关闭()并重新打开workbench?是否可以发布一些代码?在哪里以及如何关闭应用程序<代码>重新启动()应关闭并重新打开工作台。