如何恢复损坏的Eclipse工作空间?

62

我刚刚意外破坏了我的Eclipse .metadata目录。使用eclipse -clean启动没有成功。删除.metadata,然后导入所有项目、插件和设置似乎不是很有趣。我最终将.metadata/.plugins/org.eclipse.core.resources/文件夹移动到其他位置,仅重新导入我的项目。

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


1
我在我的博客文章恢复损坏的Eclipse工作空间中收集了一些信息和有用的插件。 - Aaron Digulla
最近在使用STS时,由于IDE崩溃,工作区的位置被更改为项目自己的文件夹。当尝试重新打开它时,它指出了一个损坏的项目。我不得不将工作区位置返回到正确的文件夹(即项目的父文件夹),并删除在我的项目文件夹内创建的.metadata文件夹。 - ℛɑƒæĿᴿᴹᴿ
15个回答

128
当工作空间受损并且即使使用 -clean 选项,Eclipse也无法启动时,删除单个文件 workspace/.metadata/.plugins/org.eclipse.core.resources/.snap 可能会有所帮助(来源:文章评论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)。注意:您将失去透视图、视图和选项卡的配置。
更新:Subversive插件可能会导致无法使用损坏的元数据启动Eclipse。如果已安装Subversive插件,请从update-site更新到最新版本(至少为0.7.9.I20120210-1700)。相关错误 372621370374 已由Subversive开发人员修复。

8
感谢你的建议,删除了.snap文件后,我成功恢复了宝贵的工作空间,因为一个插件破坏了Eclipse的启动! - noncom
6
删除快照文件后,我的Eclipse可执行文件得以启动。 - Carl
8
亲爱的老帖子(7年):-clearPersistedState 让我的一天变得更美好。赞一个! - ChristophS
2
删除workbench.xmi对我很有帮助。向所有用户传达信息 - 保持线程帖子最新 - AD - Stop Putin -
1
感谢删除.snap文件,解决了我的问题。 - Grant Lay
显示剩余9条评论

25

根据此处所示,您应该能够在删除以下文件后启动工作区:.metadata.plugins\org.eclipse.e4.workbench\workbench.xmi。


3
这对我解决了问题。按照最受赞同的答案所述,我没有.snap文件。被采纳的答案也对我没用。 - Magnilex
我也没有.snap文件。删除.metadata.plugins\org.eclipse.e4.workbench\workbench.xmi文件无法解决问题 :/ 我仍然可以启动其他工作区,但无法启动已损坏的工作区。 - Fluch

8
我有一些从Eclipse无法启动时恢复的经验,无论出现什么原因,这些博客文章能帮到你吗? link(已存档)
还可以搜索“无法启动eclipse”(我是一个新用户,只能发布一个超链接,所以我只能要求您搜索第二个:(抱歉))
也许这些可以帮助您恢复工作区,希望有所帮助。

链接已经失效!我一直收到“默认后端-404”的错误信息 :( - kleenxcoder
1
唉,叮咚,巫婆已死。该博客在几个月前关闭了。但是对于这个问题最被赞同的答案和我那些年写的一样。 - Christopher Thomas

5

我在使用eclipse的几年时间里偶尔需要重建工作空间(一两次)。删除.metedata并重新构建即可。


5

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

  1. 备份已损坏的工作区。
  2. 将一半的项目移动到某个临时位置。
  3. 启动Eclipse,如果它能正常工作,请转到步骤5。
  4. 将你删除的一半项目移回工作区,将其他一半移出。如果你已经这样做了,请继续以二分搜索的方式删除/重新添加你的项目。返回第3步。
  5. 退出Eclipse,将所有项目移回,并重新启动。现在你应该看到一些项目被关闭(并且在错误的工作集中)。重新打开你的项目,并将它们移动到正确的工作集中。

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


4

我已经成功从一种完全混乱的情况中恢复了我的现有工作区(各种核心组件都会出现NPE和ClassCastException等问题),使用以下步骤:

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

对于一个大型的工作区,整个过程花费了我半个多小时,但最终确实解决了问题。


4

这篇帖子可能有点旧,但由于备份Eclipse仍然是一个现今的问题,我想提出一个新的解决方案。

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

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

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

(您实际上不会与任何人“共享”您的Eclipse或工作区。您只会上传一个包含您元数据的设置文件,只有您自己才能访问。您稍后可以共享此文件,但也可以将其用作备份)。

如果您这样做,如果您的工作区或Eclipse安装损坏,您将能够非常快速地重新设置您的IDE。


2
在我的情况下,只需删除.metadata/.plugins目录下的org.eclipse.e4.workbench文件夹并重新启动Eclipse即可解决问题。

之后,我进行了文件导入,最终在项目资源管理器中加载了我之前所做的所有工作!谢谢,我的问题解决了。 - DoesEatOats

1
删除下面的文件帮助我解决了我的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。

1

以上方法都对我无效。但实际上有效的方法是从我的工作区中删除所有*.snap文件。这也会保留几乎所有的设置,包括导入的项目。在尝试之前一定要备份工作区!!!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接