【问题标题】:How to recover corrupted Eclipse workspace?如何恢复损坏的 Eclipse 工作区?
【发布时间】:2020-06-22 19:22:40
【问题描述】:

我刚刚设法破坏了我的 Eclipse .metadata 目录的内容。用 eclipse -clean 启动没有成功。删除 .metadata 然后导入所有项目、插件和设置听起来不太有趣。我最终将 .metadata/.plugins/org.eclipse.core.resources/ 移到别处并仅重新导入我的项目。

是否有任何工具或最佳实践来恢复工作空间?

【问题讨论】:

  • 在我的博文Restoring a Corrupted Workspace in Eclipse中收集了一些信息和有用的插件
  • 最近在 IDE 崩溃后使用 STS 将工作区的位置更改为项目自己的文件夹,并在尝试再次打开它时指责项目损坏。我必须将工作区位置返回到正确的文件夹(项目的父文件夹)并删除在我的项目文件夹中创建的 .metadata 文件夹。

标签: eclipse recovery workspace corrupt


【解决方案1】:

当工作区损坏并且 Eclipse 无法启动时,即使使用 -clean 选项,删除单个文件 workspace/.metadata/.plugins/org.eclipse.core.resources/.snap 也可能会有所帮助(来源:cmets 到文章 https://web.archive.org/web/20200517003712/https://letsgetdugg.com/2009/04/19/recovering-a-corrupt-eclipse-workspace/)。

更新:当Eclipse 4.X崩溃后无法启动时,尝试使用 -clearPersistedState选项启动;如果它没有帮助然后删除文件workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi(来源:https://www.eclipse.org/forums/index.php/m/1269045/https://www.eclipse.org/forums/index.php/t/522428/https://bugs.eclipse.org/bugs/show_bug.cgi?id=404873)。注意:您将丢失透视/视图/选项卡的配置。

更新:颠覆性插件可能会导致无法使用损坏的元数据启动 Eclipse。如果您安装了 Subversive 插件,请将其从 update-site 更新到最新版本(至少 0.7.9.I20120210-1700)。相关错误372621370374 已由 Subversive 开发人员修复。

【讨论】:

  • 删除 .snap 文件,感谢您的建议,在插件破坏了 Eclipse 启动后,确实帮助我重新安排了我宝贵的工作空间!
  • 删除 snap 文件允许我的 eclipse exe 启动。
  • 亲爱的老线程(7 岁):-clearPersistedState 让我开心。竖起大拇指!
  • 删除 workbench.xmi 帮助了我。给所有用户的消息 - 保持帖子发布 upToDate!
  • 感谢删除 .snap 文件,解决了我的问题。
【解决方案2】:

删除以下文件后,您应该能够启动工作区: .metadata.plugins\org.eclipse.e4.workbench\workbench.xmi 如图here

【讨论】:

  • 这为我解决了。正如最受好评的答案所述,我没有 .snap 文件。接受的答案对我也不起作用。
  • 我也没有 .snap。删除 .metadata.plugins\org.eclipse.e4.workbench\workbench.xmi 无法解决问题:/ 我仍然可以启动其他工作区,但不能启动损坏的工作区。
【解决方案3】:

我有一些从 eclipse 中恢复的经验,当它由于某种原因变得无法启动时,这些博客条目可以帮助你吗?

link(已存档)

还搜索“无法启动eclipse”(我是新用户,我只能发布一个超链接,所以我只需要请求您搜索第二个:(对不起)

也许这些也可以让您恢复工作空间,希望对您有所帮助。

【讨论】:

  • 链接失效了!我一直得到“默认后端 - 404”:(
  • 唉,叮咚,女巫死了。博客几个月前就关闭了。但这个问题最受好评的答案是我多年前写的相同信息
【解决方案4】:

我无法避免偶尔重建工作区(使用 eclipse 的几年中一到两次)。删除 .metedata 并重建。

【讨论】:

    【解决方案5】:

    通过使用以下过程,我已经成功地从完全混乱的情况(各种核心组件提供 NPE 和 ClassCastExceptions 等)中恢复了我的 现有 工作区:

    • 打开 Eclipse
    • 关闭错误对话框
    • 选择工作区中的第一个项目
    • 右键单击 -> 刷新
    • 关闭错误对话框
    • 关闭 Eclipse
    • 关闭错误对话框
    • 对工作区中的所有项目重复
    • (如果您的项目在 CVS/SVN 等中,请同步它们)
    • 清理并重建所有项目
    • 已修复

    整个过程花了我半个多小时才完成了一个大工作区,但最终还是解决了问题。

    【讨论】:

      【解决方案6】:

      我偶然发现的另一个解决方案,可能会对某人有所帮助:

      1. 备份损坏的工作区。
      2. 将一半的项目移到某个临时位置。
      3. 启动 Eclipse,如果可以,请转到第 5 步。
      4. 将已删除的一半项目移回工作区,移出另一半。如果您已经这样做了,请继续以binary search 的方式删除/读取您的项目。转到第 3 步。
      5. 退出 Eclipse,移回所有项目,然后重新启动。您现在应该看到您的一些项目已关闭(并且在错误的工作集中)。重新打开您的项目并将它们移动到正确的工作集。

      在我的情况下,损坏的是一个项目,而不是整个工作区(尝试将所述项目导入新的工作区也会导致它失败)。所以,我已经开始搜索有问题的项目 - 相反,我得到了上面描述的结果。

      【讨论】:

        【解决方案7】:

        这个线程可能有点老了,但由于现在这仍然是一个问题,我想我会提出一个备份 Eclipse 的新解决方案。

        • http://profiles.yatta.de,您可以下载 Yatta Eclipse 启动器。您可以使用它来保存您的 Eclipse 和工作区设置。

        • 安装后,Launcher 将发现您现有的 Eclipse 安装和工作区。

        • 单击您要备份的条目右侧的上传和共享按钮(蓝色按钮)。

        (您实际上不会与任何人“共享”您的 Eclipse 或工作区。您只需上传一个带有元数据的设置文件,只有您自己可以访问该文件。您可以稍后共享它,但您也可以只使用作为备份)。

        如果您这样做,如果您曾经有一个碎片化的工作区或 Eclipse 安装,您将能够非常快速地重新设置您的 IDE。

        【讨论】:

          【解决方案8】:

          在我的情况下,仅删除 org.eclipse.e4.workbench 目录(在 .metadata/.plugins 下)并重新启动 Eclipse 即可解决问题。

          【讨论】:

          • 之后我进行了文件导入,它最终加载了我之前在项目资源管理器中处理的所有内容!谢谢,我真的一团糟。
          【解决方案9】:

          我知道这听起来很明显,但如果我以编写代码为生,我肯定会每周进行一次完整备份,并每天进行相应的增量备份。

          简单易恢复。

          对于备份 eclipse 目录并假设您使用 Linux 的简单方法,您可以使用 rsync。

          rsync -ar

          您可以将其放入 cron 并让它自动备份您的文件。它只会在后续运行时将更改的文件复制到您的备份-eclipse-dir。

          【讨论】:

          • 谢谢,但我正在寻找恢复方法,而不是备份方法。
          • 非常感谢,我做了适当的备份(使用 rdiff-backup),但由于某种原因没有考虑从那里恢复我的工作空间,而是希望恢复......快睡着了.
          【解决方案10】:

          删除下面的文件帮助我解决了我的 Eclipse 启动问题。 Perforce 插件一直困扰着我,尤其是当我的机器重新启动时,下次 eclipse 尝试恢复工作空间并崩溃。

          workspace/.metadata/.plugins/org.eclipse.core.resources/.snap

          供您参考,我得到的错误: org.eclipse.core.runtime.CoreException:插件 com.perforce.team.ui 无法加载类 com.perforce.team.ui.UITeamProvider。

          【讨论】:

            【解决方案11】:

            以上都不适合我。但实际上有效的是从我的工作区中删除所有 *.snap 文件。这也保留了几乎所有设置,包括导入的项目。请务必在尝试之前备份工作区!!!

            【讨论】:

              【解决方案12】:

              在workspace/.metadata/.plugins/org.eclipse.wst.jsdt.core/中删除一个扩展名为.dat的文件,然后关闭e并打开eclipse,可能你无法关闭eclipse,强制使用pkill -f eclipse如果您使用的是 linux 或类似设备。

              此解决方案避免导入所有现有项目。

              【讨论】:

                【解决方案13】:

                我也遇到过这样的问题,我的工作区已损坏,不再做所有重要的事情。

                由于某种原因,我的一个项目中的资源已损坏。它没有显示在包树中,但它确实在 Eclipse 的错误日志中显示为

                为外部文件夹 X:\somefolder 创建链接时出错

                检查每个项目后(因为错误没有指向一个),我确实在其中一个构建路径中找到了这个资源(在配置构建路径菜单中它确实显示了一个错误图标!)并将其删除。

                如果您遇到类似问题,请参阅 Eclipse (Kepler) Workspace acting weird (type hierarchy, searching for references not working) 以更详细地描述我的问题。

                发布此内容以供将来的开发人员参考。

                【讨论】:

                  【解决方案14】:

                  在我的例子中,损坏的不是工作区,而是 Eclipse 本身。即使看起来工作区已损坏(相同的错误对话框等),我所要做的就是重新安装 Eclipse 并将其指向旧的工作区。如果工作区损坏了,您无法真正修复损坏的工作区,但您可以这样做只是为了更好地衡量,也许它会起作用。

                  【讨论】:

                  • 这听起来更像是一个评论,而不是这个问题的答案。尤其是您请求日志文件的部分)如果我错了,请编辑您的答案以清楚地展示这如何回答问题并删除日志请求。否则,请在获得足够声誉后留下评论。
                  • @Yannis 现在是答案好吗?
                  【解决方案15】:

                  如果工作空间不是那么大,您可以将保管箱备份为私人锁定文件夹。

                  【讨论】:

                  • 这并不能阻止 Eclipse 破坏它。
                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-12-15
                  • 2014-04-29
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-03-04
                  相关资源
                  最近更新 更多