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

如何通过编程重启Eclipse并执行-clean缓存清理操作

Eclipse编程实现带-clean参数的重启

你找到的PlatformUI.getWorkbench().restart()系列方法本身不支持直接传入-clean参数,要实现重启时清除缓存,可通过以下两种方式实现:

方法一:通过配置标记触发-clean(官方推荐)

Eclipse启动时会读取特定配置节点的标记,我们可以在代码中写入该标记,重启后Eclipse会自动执行-clean逻辑,完成后还会自动清除标记,不影响后续启动:

// 获取Eclipse实例级配置节点
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode("org.eclipse.ui.ide");
// 设置clean启动标记
prefs.putBoolean("clean", true);
// 保存配置变更
try {
    prefs.flush();
} catch (BackingStoreException e) {
    e.printStackTrace();
}
// 执行工作台重启
PlatformUI.getWorkbench().restart();

这种方式完美适配Dropins插件升级场景,重启时Eclipse会重新扫描插件目录、清理旧缓存,确保新插件生效。

方法二:手动构建带-clean参数的启动进程

如果需要更灵活的启动参数控制,可以手动获取当前Eclipse的启动路径,构建带-clean的新进程,再关闭当前实例:

// 获取当前Eclipse启动程序路径
String eclipseLauncher = System.getProperty("eclipse.launcher");
// 构建启动命令列表
List<String> cmdList = new ArrayList<>();
cmdList.add(eclipseLauncher);
cmdList.add("-clean");
// 添加工作区路径参数(保留当前工作区)
cmdList.add("-data");
cmdList.add(Platform.getInstanceLocation().getURL().getPath());

// 启动新的Eclipse进程
try {
    new ProcessBuilder(cmdList).start();
} catch (IOException e) {
    e.printStackTrace();
}
// 关闭当前工作台实例
PlatformUI.getWorkbench().close();

内容的提问来源于stack exchange,提问作者user26387169

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:55:55