Java 如何从EclipseIDE获取当前活动选项卡的文件名?

Java 如何从EclipseIDE获取当前活动选项卡的文件名?,java,eclipse-plugin,Java,Eclipse Plugin,我想在EclipseIDE编辑器中获取当前打开的选项卡的文件名。基本上,我正在用Java开发一个插件,我希望以编程方式从eclipse IDE编辑器中提取当前打开文件的名称。可能有一种较短的方法,但这段代码应该可以做到: IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); String name = activePage.getActiveEditor(

我想在EclipseIDE编辑器中获取当前打开的选项卡的文件名。基本上,我正在用Java开发一个插件,我希望以编程方式从eclipse IDE编辑器中提取当前打开文件的名称。

可能有一种较短的方法,但这段代码应该可以做到:

IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String name = activePage.getActiveEditor().getEditorInput().getName();
当然,一定要检查可能的空值,等等

编辑:从UI线程运行此操作。例如:

      final String[] name = new String[1];
        UIJob job = new UIJob("Get active editor") //$NON-NLS-1$
        {
            public IStatus runInUIThread(IProgressMonitor monitor)
            {
                try
                {
                    IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                    name[0] = activePage.getActiveEditor().getEditorInput().getName();
                }
                catch (Exception e)
                {
                    // return some other status
                }

                return Status.OK_STATUS;
            }
        };
        job.schedule();
        job.join();
        System.out.println(name[0]);

我已经试过上面的代码了。它在上述代码的第一行显示空指针异常。我不确定它为什么会出现这样的错误。请尝试从UI线程运行它。使用UIJob实例并安排它。非常感谢大家的帮助。第一个代码本身就起作用了。我试图访问插件外部的工作台。所以它给出了这样的错误。