Java 以编程方式保存Eclipse编辑器

Java 以编程方式保存Eclipse编辑器,java,eclipse-plugin,eclipse-rcp,Java,Eclipse Plugin,Eclipse Rcp,我正在开发一个插件 单击按钮后,我想调用Eclipse的save方法或调用Eclipse工具栏上的save按钮 怎么做 org.eclipse.ui.PlatformUI.getWorkbench().saveAll(..) 我们应该做到这一点 如果要保存活动编辑器,请重试 IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart editor

我正在开发一个插件

单击按钮后,我想调用Eclipse的save方法或调用Eclipse工具栏上的save按钮

怎么做

org.eclipse.ui.PlatformUI.getWorkbench().saveAll(..) 
我们应该做到这一点

如果要保存活动编辑器,请重试

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor = page.getActiveEditor();
page.saveEditor(editor, true /* confirm */);

请注意,导航路径中的元素可能为空。

我使用此选项为一个或多个项目保存脏编辑器:

//Save all changes
    Display.getDefault().syncExec(new Runnable() { // save all editors needs to be called by the ui thread!
        @Override
        public void run() {
            IDE.saveAllEditors(new IResource[]{prj}, true);
        }
    });
其中,
prj
是一个IProject对象

希望这有帮助

再见,我用过-

IDEWorkbenchPlugin.getDefault().getWorkbench().saveAllEditors(true);    

谢谢Sebastian,但是它保存了所有打开的编辑器。我只想保存当前(活动)的编辑器。您能告诉我如何实现它吗?注意:
IDEWorkbenchPlugin
是内部的,不应该使用。如果您没有访问窗口或页面的权限,您可以求助于
PlatformUI.getWorkbench()
,它是API。