Java 如何从EclipseIDE获取当前活动选项卡的文件名?
我想在EclipseIDE编辑器中获取当前打开的选项卡的文件名。基本上,我正在用Java开发一个插件,我希望以编程方式从eclipse IDE编辑器中提取当前打开文件的名称。可能有一种较短的方法,但这段代码应该可以做到:Java 如何从EclipseIDE获取当前活动选项卡的文件名?,java,eclipse-plugin,Java,Eclipse Plugin,我想在EclipseIDE编辑器中获取当前打开的选项卡的文件名。基本上,我正在用Java开发一个插件,我希望以编程方式从eclipse IDE编辑器中提取当前打开文件的名称。可能有一种较短的方法,但这段代码应该可以做到: IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); String name = activePage.getActiveEditor(
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实例并安排它。非常感谢大家的帮助。第一个代码本身就起作用了。我试图访问插件外部的工作台。所以它给出了这样的错误。