You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse 4.7.2中SaveAllAction.class缺失问题咨询及替代方案求解

解决Eclipse 4.7.2中SaveAllAction.class缺失的问题

我帮你梳理清楚这个问题——在Eclipse 4.7.2(Oxygen.2)版本里,SaveAllAction.class确实已经从org.eclipse.ui.workbench插件中移除了,这是Eclipse从3.x过渡到4.x架构时,对传统Action体系进行重构的结果,很多旧的Action类被官方标记为废弃并移除,转而采用更灵活的命令(Command)机制和工作台API。

官方推荐的替代方案

你不用纠结找不到旧类的问题,直接用下面两种官方认可的方式替代即可:

1. 直接调用工作台的saveAll方法

如果只是需要执行“保存所有”的逻辑,最直接的方式是通过IWorkbench接口提供的saveAll方法:

import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.IWorkbench;

// 获取工作台实例
IWorkbench workbench = PlatformUI.getWorkbench();
// 执行保存所有操作:参数为false时不弹出确认对话框,true则会提示用户确认
workbench.saveAll(false);

2. 使用Eclipse命令系统绑定UI动作

如果需要把“保存所有”绑定到菜单、工具栏按钮等UI元素,或者需要遵循Eclipse的命令扩展机制,推荐使用官方定义的“Save All”命令,其ID为org.eclipse.ui.file.saveAll:

代码中执行命令的示例:
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.core.commands.Command;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.NotDefinedException;
import org.eclipse.core.commands.NotEnabledException;
import org.eclipse.core.commands.NotHandledException;

// 获取命令服务
ICommandService commandService = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
// 获取Save All命令
Command saveAllCommand = commandService.getCommand("org.eclipse.ui.file.saveAll");
try {
    // 执行命令
    saveAllCommand.executeWithChecks(null);
} catch (ExecutionException | NotDefinedException | NotEnabledException | NotHandledException e) {
    // 根据业务需求处理异常
    e.printStackTrace();
}
在plugin.xml中扩展菜单/工具栏的示例:

如果你是在开发插件,需要在UI中添加“Save All”按钮或菜单项,直接在plugin.xml里引用这个命令ID即可:

<extension point="org.eclipse.ui.menus">
    <menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=file">
        <command
            commandId="org.eclipse.ui.file.saveAll"
            label="Save All"
            style="push">
        </command>
    </menuContribution>
</extension>

补充说明

Eclipse 4.x之后的架构更偏向于基于应用模型(Application Model)的组件化设计,旧的Action类因为耦合度高、扩展性差被逐步淘汰。上面的两种方案都是官方文档中明确推荐的替代方式,完全可以覆盖SaveAllAction原来的所有功能。

内容的提问来源于stack exchange,提问作者Shivendra Prakash Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:54:54