Eclipse plugin PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()中的NullPointerException

Eclipse plugin PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()中的NullPointerException,eclipse-plugin,Eclipse Plugin,返回线程“thread-3”java.lang.NullPointerExceptionµ中的异常。 我该怎么办?添加一些空检查,工作台可能没有活动窗口,如果工作台尚未启动(例如createAndRunWorkbench()尚未调用),PlatformUI.getWorkbench也可能抛出非法状态异常 如果线程没有在活动窗口中运行,PlatformUI.getWorkbench().getActiveWorkbenchWindow()将返回“null”。 您必须将代码包装在显示器中,例如: I

返回线程“thread-3”java.lang.NullPointerExceptionµ中的异常。
我该怎么办?

添加一些空检查,工作台可能没有活动窗口,如果工作台尚未启动(例如createAndRunWorkbench()尚未调用),PlatformUI.getWorkbench也可能抛出非法状态异常


如果线程没有在活动窗口中运行,PlatformUI.getWorkbench().getActiveWorkbenchWindow()将返回“null”。 您必须将代码包装在显示器中,例如:

IWorkbenchWindow window = PlatformUI.getWorkbench().getInstance()
    .getActiveWorkbenchWindow();

if(workbenchWindow != null) {
     IWorkbenchPage page = window .getActivePage();
}

我有一个工作要做。尽管这是一个老帖子

Display.getDefault().asyncExec(new Runnable() {
    @Override
    public void run() {
        IWorkbenchWindow iw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    }
});

非常感谢你。这对我很有帮助。非常好,谢谢,它帮了我。
Display.getDefault().asyncExec(new Runnable() {
    @Override
    public void run() {
        IWorkbenchWindow iw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    }
});
    IWorkbench wb = PlatformUI.getWorkbench();
    if (wb.getWorkbenchWindowCount() == 1) {
      try{
      wb.getWorkbenchWindows()[0].getActivePage().getPerspective();
      }
      catch(NullPointerException e)
      {
        Logger.log(e);
      }
    }