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

Mac终端误执行jar命令致Book.java损坏,如何恢复?

恢复被误覆盖的Book.java文件

哥们,我太懂这种手滑的痛苦了——你把jar命令的参数搞反了,把Book.java当成了输出的JAR文件名,结果原来的Java源文件被替换成了JAR归档,导致内容全乱了。别慌,咱们一步步来解决:

先确认问题本质

首先执行这个命令,确认当前的Book.java确实是个伪装成Java文件的JAR包:

file Book.java

如果输出显示类似Book.java: Java archive (JAR),那咱们的判断就没错——原来的源文件已经被JAR归档覆盖了。

先救回其他没被覆盖的文件

虽然Book.java凉了,但你当时打包的Library.java、Patron.java和README都被塞进了这个伪装的JAR里,先把它们捞出来:

  1. 重命名文件,方便操作:
    mv Book.java temp_backup.jar
    
  2. 解压这个JAR包:
    jar xf temp_backup.jar
    
    执行完后,你就能在当前目录拿到那三个文件的副本了。

重点:恢复原来的Book.java

这部分分两种情况,优先级从高到低:

情况1:你开启了Time Machine备份(最靠谱)

这是最简单的恢复方式:

  • 打开Mac上的Time Machine应用
  • 在Time Machine里导航到你的项目文件夹
  • 找到被覆盖之前的Book.java版本(可以用右侧的时间线滑块找)
  • 选中文件后点击“恢复”,就能把原来的源文件找回来

情况2:没有Time Machine备份

被覆盖的文件恢复难度比删除的大,但还有一丝希望:

  • 编辑器本地历史记录:如果你用VS Code、IntelliJ这类编辑器写代码,它们大多会保存文件的本地历史。比如VS Code可以通过「文件 > 比较文件 > 本地历史记录」查看旧版本;IntelliJ右键点击文件,选择「本地历史 > 显示历史」就能找到之前的版本。
  • 磁盘恢复工具:可以试试Disk Drill这类Mac磁盘恢复工具,免费版能扫描磁盘,看看是否能找到被覆盖前的Book.java残留数据。不过这种方法成功率不保证,毕竟原文件的磁盘空间已经被新的JAR文件覆盖了一部分。

最后给你提个醒

以后用jar命令时,不妨先写好输出的JAR文件名,再加要打包的文件,比如:

jar cvf ex0.jar Book.java Library.java Patron.java README

这样就不会再手滑把源文件当成输出包了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:21:41