Eclipse中意外删除丢失的代码能否找回?如何恢复?
Eclipse意外删除代码(异常关机后文件为空)找回方案
操作前注意:找回完成前不要往对应工作空间存入新文件、做大量编辑操作,避免历史缓存被新数据覆盖,降低找回概率。
按优先级从高到低试以下方法:
- 第一优先级:用Eclipse内置本地历史恢复
Eclipse默认开启本地编辑历史留存,哪怕异常关机也不会自动清空历史记录。操作步骤:- 在Eclipse的包资源管理器里找到变成空文件的目标类,右键点击选择「Restore from Local History」(从本地历史恢复)
- 在弹出的窗口中会列出该文件所有自动留存的历史版本,勾选你误按退格删代码之前的时间点对应的版本(注意避开误操作后、关机前自动保存的0字节空版本,选文件大小和原代码匹配的条目)
- 点击恢复按钮,就能把文件还原到选中的历史版本状态。如果右键文件找不到对应选项,可以先选中目标文件,再从顶部菜单栏的File菜单里找同一个恢复入口。
- 第二优先级:从Eclipse工作空间缓存目录找备份
如果本地历史里没找到对应版本,可以直接翻Eclipse工作空间的缓存文件:- 先完全关闭Eclipse,打开你当时存放该项目的工作空间根文件夹
- 依次进入路径
.metadata/.plugins/org.eclipse.core.resources/.history/ - 该目录下有多个按时间戳命名的子文件夹,找到和你误操作日期匹配的文件夹,逐个查看里面的文件:找大小和你原代码文件接近、无后缀的文件,复制出来后把后缀改成
.java,用文本编辑器打开就能确认是不是你丢失的代码。
- 第三优先级:从编译产物反编译恢复
如果前两个方法都没找到,只要你之前运行/编译过这个类,可以去项目的编译输出目录找对应的class文件:- 打开项目根目录下的
bin目录(Maven项目是target/classes目录),找到和目标类全限定名匹配的.class文件 - 用Java反编译工具打开这个class文件,就能还原出绝大多数代码逻辑,虽然注释、部分代码格式会丢失,但核心功能代码基本能找回来。
- 打开项目根目录下的
注意:不建议优先使用第三方全盘文件恢复工具,你遇到的是软件内编辑删除+异常关机的场景,Eclipse自带的留存机制命中率远高于全盘扫描;如果你的系统盘是固态硬盘且开启了TRIM,隔了数天的已删除文件基本无法通过全盘扫描找回,没必要浪费时间。
内容的提问来源于stack exchange,提问作者Kyotiq
相关产品推荐
相关产品推荐

