我使用的是Eclipse 3.3(“Europa”)。周期性地,Eclipse需要非常长的时间(可能永远)才能启动。我在Eclipse日志中唯一能看到的是:

    !ENTRY org.eclipse.core.resources 2 10035 2008-10-16 09:47:34.801
    !MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

谷歌搜索发现有人建议我删除文件夹:

workspace\.metadata\.plugins\org.eclipse.core.resources\.root\.indexes

这似乎并没有起到什么作用。

如果不从一个新的工作空间开始(这是我不喜欢做的事情,因为重新正确地设置所有项目需要花费数小时),那么是否有一种方法可以使Eclipse正确地启动?


当前回答

我在Fedora 18上的eclipse (Juno)遇到了非常类似的问题。在调试Android会话的过程中,eclipse结束了调试会话。我试图重新启动eclipse,但它一直挂在启动屏幕上。我尝试了上面的各种建议,都没有成功。最后,我检查了adb服务(android调试桥):

# adb devices
List of devices attached 
XXXXXX offline

我知道android设备仍然连接,但它报告离线。我断开了设备并关闭了adb服务:

# adb kill-server

然后我等待了几秒钟,重新启动了adb服务:

# adb start-server

把我的机器人重新插上。在那之后,日食开始得很好。

其他回答

我也很幸运地去掉了*。临时文件。我的位于不同的目录中提到的职位(下面)。

<eclipse workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects

因此,下面的unix cmd起了作用:

find <eclipse_workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects  -name "*.snap" -exec rm -f {} \;

我在3.5中遇到过类似的问题,工作区太大了,到处都找不到.snap-files。“Windows ->首选项->常规->启动和关闭->启动时刷新工作空间”似乎是一个与工作空间相关的设置,所以我无法为导致挂起的工作空间更改它。

使用命令行参数-refresh运行eclipse,然后更改设置似乎可以达到目的。

对于您的问题,这可能不是一个确切的解决方案,但在我的案例中,我跟踪了Eclipse使用SysInternals Procmon轮询的文件,并发现Eclipse一直在为我的一个项目轮询一个相当大的快照文件。删除它后,一切正常启动(尽管工作空间处于上次启动时的状态)。

被删除的文件是:

<workspace>\.metadata\.plugins\org.eclipse.core.resources\.projects\<project>\.markers.snap

如果您使用的是Eclipse 4.5/4.6、旧于v2.9.0的Eclipse Xtext插件版本以及特定的工作空间配置,也可能由此错误引起。

解决方法是创建一个新的工作空间并导入现有的项目。

我尝试了这篇文章里的所有答案,但没有一个对我有效——没有快照文件,没有移动项目,没有一个。

奇怪的是,有效的方法是将所有项目和.metadata文件夹移到其他地方,启动Eclipse,关闭它,然后将它们全部移回来。