如何防止Eclipse在启动时挂起?


228

我正在使用Eclipse 3.3(“ Europa”)。Eclipse会不定期地(可能永远)花费很长时间来启动。我在Eclipse日志中唯一看到的是:

    !ENTRY org.eclipse.core.resources 2 10035 2008-10-16 09:47:34.801
    !MESSAGE工作区在上一个会话中退出,但未保存更改;刷新工作区以恢复更改。

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

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

这似乎没有帮助。

缺少一个新的工作空间(我不愿意做的事情,因为我要花费几个小时才能再次正确设置所有项目),是否有办法使Eclipse正确启动?


4
这个问题的解决方案对我
有用


需要注意的一件事-当Eclipse启动,构建或使用源代码管理时,它会将本地目录与存储库进行比较,并扫描项目目录。因此,如果要在本地编写很多输出文件,则Eclipse将必须对其进行扫描-即使它位于工作区/ your_project / tmp中。如果文件数量确实很大(例如您正在使用本地文件模拟数据库),则可能需要一些时间。这将导致人们在此处报告这种不稳定情况。最好将这样的数据放在其他地方。
Mark Butler

Answers:


267

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

删除的文件为:

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

2
该文件在我的版本中不存在。
User1

71
2011-06-08:在Eclipse 3.6(Helios)下,相应的文件似乎是.metadata/.plugins/org.eclipse.core.resources/.snap。我杀死了该文件并保存下来,Eclipse又重新启动了。我只是注意到这重复了joj的答案。
卡尔·斯莫特里奇

11
删除.metadata \ .plugins \ org.eclipse.core.resources \ .projects \ <project> \。markers.snap对我不起作用。我必须删除.metadata / .plugins / org.eclipse.core.resources / .snap
1.21吉瓦

3
我也不得不删除.metadata / .plugins / org.eclipse.core.resources / .snap,谢谢Donny Kumia 1.21吉瓦
Andrew Mackenzie

2
只需将.snap文件删除为@ 1.21gigawatts,就足以使它正常工作。
marlonp33 2014年

233

尝试:

  1. cd到<workspace> \。metadata \ .plugins \ org.eclipse.core.resources
  2. 删除文件* .snap(或Indigo中的.markers

3
你是我的上帝!顺便说一句,这个.snap通常做什么?
2011年

1
这个文件对我来说已经存在,但是在另一个答案中提到的.metadata.plugins \ org.eclipse.core.resources.projects \ .markers.snap没有。通过删除此文件,我似乎并没有从工作空间中丢失任何重要信息。
User1

1
@MichałPękała我也想知道删除此文件的效果,我发现了另一个问题,答案有点:eclipse中的快照文件是什么
pconcepcion 2012年

哇,为我工作,虽然我的问题不尽相同,但却相似。Eclipse打开并显示代码,但是一旦我执行任何操作,它将进入无限循环。我本可以度过一生,却无法解决问题。谢了哥们。
2012年

如果/遇到错误,则应使Eclipse在启动时自动执行此操作。
aroth

54

就我的情况(Juno)而言,我必须这样做:

find $WORKSPACE_DIR/.metadata/.plugins/org.eclipse.core.resources/.projects \
-name .indexes -exec rm -fr {} \;

做到了。

最初,我认为这是Mylyn的问题(开始使用通用Web连接器后,我遇到了这些死机),但是即使卸载了连接器,甚至删除了.mylyn目录,问题仍然出现。

编辑:我还设法通过删除仅一个文件来重新启动eclipse:

rm $WORKSPACE_DIR/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi

效果很好,不涉及任何索引。只有工作台,我个人不太在意。


您如何确定.indexes文件是问题的根源?
杰夫·阿克塞尔罗德

恐怕是试错。我怀疑这是Mylyn的错误,因此我以.mylyn目录开始无济于事。然后我读了一些有关索引编制时eclipse锁定的内容,因此我去了。
拉法2012年

7
删除.markers文件对我来说不起作用,但是删除.indexes和workbench.xmi使我的工作空间再次加载。
纳撒尼尔(Nathaniel Waisbrot)2013年

尝试了很多东西并删除了workbench.xmi为我做到了,谢谢!
2013年

3
删除$ WORKSPACE_DIR / .metadata / .plugins / org.eclipse.e4.workbench / workbench.xmi也对我有用(我正在运行月蚀火星)
Nenad

36

您可以尝试Eclipse首先使用该-clean选项。

在Windows上,您可以将-clean选项添加到Eclipse的快捷方式中。在Linux开始时,你可以简单地增加它Eclipse的命令行。


3
由于我的问题是在Windows上(与发问者的问题类似,甚至不同),因此无法解决问题。
russellpierce

您应该首先尝试一种更无害的解决方案。
2013年

35

这对我有用:

另一个显然更好的解决方法:

  1. 关闭Eclipse
  2. 临时将有问题的项目移出工作区。
  3. 启动Eclipse,等待工作空间加载(应该加载)。
  4. Eclipse再次关闭。
  5. 将项目移回到工作区。

来源:升级到GWT 2.0 / Google App Engine 1.2.8后,Eclipse在打开工作区时挂起。


谢谢@Hendy!这是Eclipse Luna中唯一为我工作的解决方案。
Yassine ElBadaoui

它可以解决问题,尽管每次启动蚀时都是令人讨厌的解决方案。无论如何,谢谢:)
Roberto14'4-4-8

附带说明,我必须打开一个不同的Eclipse版本,加载工作区,关闭它,然后再次打开我真正想要使用的版本。
rfsbsb 2015年

31

我用过eclipse -clean -clearPersistedState,那对我有用。

警告:这可能会删除工作空间中的所有项目。


3
注意:这也将重置您的工作区透视图。
Aldjinn

它奏效了,但就我而言,它也删除了所有项目。
mprabhat

13

我在3.5中有一个相当大的工作区并且在任何地方都看不到.snap文件时遇到了类似的问题。“ Windows-> Preferences-> General->启动和关闭->启动时刷新工作空间”似乎是与工作空间相关的设置,因此我无法为引起挂起的工作空间进行更改。

eclipse使用命令行参数-refresh 运行,然后更改设置似乎可以解决问题。


3
这就是我使其工作的方式。这-refresh对我来说是关键。谢谢!
克里斯·克里斯乔

-clean本身无济于事,我也必须运行-refresh
dschulten

12

我也很幸运删除了* .snap文件。矿井位于与帖子中提到的目录不同的目录(下)。

<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 {} \;

8

我尝试了该线程中的所有答案,但没有一个对我有用-不是快照文件,不移动项目,也没有一个。

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


5

由于我在.metadata.plugins \ org.eclipse.core.resources文件夹中没有.snao或.prefs文件(在OS X上运行),对我来说,窍门是将.project文件夹复制到old.project ,启动Eclipse,然后检查

Windows->首选项->常规->启动和关闭->启动时刷新工作区

根据马特b的建议。之后,我关闭了Eclipse,将文件夹old.projects重命名为.projects,之后一切又恢复正常。


3

我这样做:

  1. 光盘到.metadata.plugins \ org.eclipse.core.resources
  2. 删除文件.snap
  3. 注意到“进度”选项卡每隔几秒钟就在执行某项操作。
  4. 退出日食(不要归档|在此处重新启动,否则您必须重新回到步骤1)
  5. 再次打开日食。

使用-refresh-clean启动Eclipse时无济于事。


3

在Mac OS X上,通过双击Eclipse应用程序来启动Eclipse。如果需要将参数传递给Eclipse,则必须在Eclipse应用程序捆绑包中编辑eclipse.ini文件:在按住Control键的同时选择Eclipse应用程序捆绑包图标。这将为您提供一个弹出菜单。在弹出菜单中选择“显示包装内容”。在Contents / MacOS子文件夹中找到eclipse.ini文件,然后使用您喜欢的文本编辑器将其打开以编辑命令行选项。

在文件的开头添加“ -clean”和“ -refresh”,例如:

-clean
-refresh
-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library

这对于OSX 10.10.3(Yosemite)上的Eclipse Luna而言对我来说是有效的。谢谢奥德!
Scott Presnell,2015年

2

检查您的电视或其他第二台显示器上尚未打开Workspace Launcher。它发生在我身上。症状看起来与所描述的问题相同。


1

Windows->首选项->常规->启动和关闭

Refresh workspace on startup检查了吗?


10
这可能很难评估Eclipse工作空间何时不会首先打开。
russellpierce

@rpierce并不是很有帮助的注释,因为您始终可以在启动时指定其他工作区(当然,前提是您没有在启动时将Eclipse配置为默认为特定的工作区!)。**如果已设置默认值,则始终可以在org.eclipse.ui.ide.prefs中将SHOW_WORKSPACE_SELECTION_DIALOG = false设置为撤消此操作,如果您已设置为默认值,则为** **假设您可以使用其他工作空间启动,请选中启动”复选框,然后重新启动Eclipse并切换回您的原始工作区。那应该推动事情前进。
user924272 2014年

1
@ user924272:好吧<耸肩> 9个人不同意您对我的评论的评价。尽管如此,我很高兴地承认您的评论更有用...并且可能确实提供了马特b可以在他的回答中包含的信息,这将使它成为一个更好的答案。但是现在您提供的信息就在这里,每个人都可以受益!
russellpierce 2014年

1

我只是在Eclipse启动时遇到问题。已通过删除此文件进行修复:

rm org.eclipse.core.resources.prefs

我在.settings中找到


1

安装后UFT导致RDz(基于Eclipse)出现问题即使在适当的环境变量和相应值的情况下,这些建议也可以解决这种情况。

注意:在Java上下文中不会识别有冲突的应用程序,因为它已从Java支持机制中排除。

  1. 影响:不能通过Windows注册表编辑器将加载项支持挂钩到有冲突的应用程序可执行文件中要求:该应用程序必须由EXE文件启动,除了Java.exe / Javaw.exe / jpnlauncher.exe之外

说明

一个。找到与外接程序支持冲突的应用程序的可执行文件名。使用任务管理器或Microsoft Process Explorer。

b。打开Windows注册表编辑器。

C。导航到:HKEY_LOCAL_MACHINE \ SOFTWARE \ Mercury Interactive \ JavaAgent \ Modules对于Windows x64上的32位应用程序:HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Mercury Interactive \ JavaAgent \ Modules

d。使用冲突的软件可执行文件nmae的名称创建一个DWORD值,并将该值设置为0。

更新注册表


1

删除* .snap(我的是* .markers),--clean-data或移动工作空间文件夹似乎对我来说都不起作用。

在安装并切换键盘输入到HIME之后,由于日食停止工作,我回到了fctix并成功了。


这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;相反,请提供不需要问询者澄清的答案。- 评分
Vishva戴夫·

1
@VishvaDave问题不是要解决Eclipse卡住的问题的解决方案吗?我认为我们也面临着同样的问题,答案对我来说很有效。
adayoegi

0

我没有快照文件。在帮助菜单的安装列表中,至少有90%的插件已禁用了卸载按钮,因此我无法在此处理它。在启动/关闭下,大多数插件未列出。相反,我不得不从我的plugins文件夹中手动删除项目。哇,现在启动时间对我来说要快得多。因此,如果其他所有方法都不起作用,并且您拥有可抛弃的插件,那么这可能是最终使用的解决方案。


0

不幸的是,这些解决方案都不适合我。我最终不得不创建一个新的工作区,然后将现有项目导入到新的工作区中。不幸的是,您这样做会丢失首选项(因此,请记住,每次更改设置都将其导出!)


0

我在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

并重新插入我的android。之后,eclipse启动就很好了。


0

无需删除整个元数据文件。只需尝试从工作区文件夹中的org.eclipse.core.resources中删除.snap文件

ex. E:\workspaceFolder\.metadata\.plugins\org.eclipse.core.resources

0

注意{WORKSPACE-DIR} /。metadata / .plugins文件夹中的零字节.plugin 文件。我只是删除了其中的一个,它解决了我的冻结问题。


0

在我的情况下,类似的症状是由一些恶意git存储库和大量垃圾系统文件引起的。

如上所述,通用的补救方法是使用过程监视器来发现有问题的文件。设置以下两行过滤器非常有用:

  • 进程名称 eclipse.exe
  • 进程名称 javaw.exe

0

在更新了Mavericks上的日食后,我遇到了类似的问题。最终,我发现com.google.gdt.eclipse.login jar在eclipse插件目录的末尾有版本号。我从名称中删除了版本号,一切正常:)




0

在Ubuntu中eclipse -clean -refresh为我工作的Eclipse 3.8.1


0

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

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


0

好吧,在X11上启动Eclipse时,我有类似的行为。我忘了在腻子中勾选启用X11转发。


0

就我而言,删除工作区的.metadata文件夹有效。我正在使用Eclipse Luna服务版本2。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.