在Windows 7上,Eclipse会冻结

7
显然,在应用了Windows 7的一些最新更新之后,Eclipse停止正常工作。它经常会冻结30秒到2分钟。事实上,系统也会冻结,例如WMP中播放的音乐停止、网页加载停止等等。
我首先尝试了最新版本的Eclipse Kepler,认为只是新版本的问题,但是回退到Juno时发现同样的问题仍然存在。
我的JRE是Java 7u45,但我也测试过7u7,没有任何变化。
看起来在冻结期间进行了一些I/O操作,因为硬盘指示灯不停地闪烁。
这完全防止了在Eclipse以及系统本身中做任何事情。
有人最近遇到过这样的问题吗?我已经通过谷歌搜索了一下,找到了一些针对64位Windows的Eclipse错误报告。
编辑:我在另一台几乎相同配置的机器上进行了测试,结果完美无缺。有什么办法可以检查我的机器,找出问题的原因吗?
还有,只有当我运行Eclipse时,才会发生这种情况,其他应用程序都没有问题。
编辑:我使用-consolelog运行了Eclipse,并在冻结期间捕获了异常的堆栈跟踪。


2013-11-15 12:31:06,480 [main] INFO  c.n.h.c.p.n.NettyAsyncHttpProvider - Number of application's worked threads is 8
2013-11-15 12:32:56,300 [Recommenders-Dependency-Info-Service-0] ERROR o.e.r.i.r.p.ClasspathEntryInfoProvider - Extracing jar information failed with exception.

java.lang.RuntimeException: java.io.IOException: The request could not be executed due to an I/O device error.     at org.eclipse.recommenders.utils.Throws.throwUnhandledException (Throws.java:47) ~ [na:na]     at org.eclipse.recommenders.utils.Fingerprints.internal_sha1v2 (Fingerprints.java:59) ~ [na:na]     at org.eclipse.recommenders.utils.Fingerprints.sha1 (Fingerprints.java:64) ~ [na:na]     at org.eclipse.recommenders.utils.archive.ArchiveDetailsExtractor.createFingerprint (ArchiveDetailsExtractor.java:56) ~ [na:na]     at org.eclipse.recommenders.internal.rcp.providers.ClasspathEntryInfoProvider $ 3.run (ClasspathEntryInfoProvider.java:247) ~ [na:na]     at java.util.concurrent.Executors $ RunnableAdapter.call (Unknown Source) [na:1.7.0_45]     at java.util.concurrent.FutureTask.run (Unknown Source) [na:1.7.0_45]     at java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown Source) [na:1.7.0_45]     at java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown Source) [na:1.7.0_45]     at java.lang.Thread.run (Unknown Source) [na:1.7.0_45] Caused by: java.io.IOException: The request could not be executed due to an I/O device error.     at java.io.FileInputStream.readBytes (Native Method) ~ [na:1.7.0_45]     at java.io.FileInputStream.read (Unknown Source) ~ [na:1.7.0_45]     at com.google.common.io.ByteStreams.readBytes (ByteStreams.java:708) ~ [na:na]     at com.google.common.io.ByteStreams.getDigest (ByteStreams.java:760) ~ [na:na]     at com.google.common.io.Files.getDigest (Files.java:642) ~ [na:na]     at org.eclipse.recommenders.utils.Fingerprints.internal_sha1v2 (Fingerprints.java:57) ~ [na:na]     ... 8 common frames omitted

! ENTRY org.eclipse.m2e.logback.appender 4 0 2013-11-15 12:32:56.310 ! MESSAGE Extracing jar information failed with exception. 2013-11-15 12:34:44,130 [Recommenders-Dependency-Info-Service-0] ERROR o.e.r.i.r.p.ClasspathEntryInfoProvider - Extracting jar information failed with exception.


1
我不明白为什么这个问题会被踩。能否请您更具体地说明一下? - Jagger
Jagger,你可能想在superuser.com上尝试这个问题,因为SO专门针对编程方向的问题。这可以解释你所收到的兴趣和负票的缺乏。祝你好运。 - Will Tate
5
对于管理员来说,这与超级用户没有任何关系:这是一个被程序员广泛使用的软件工具,在StackOverflow FAQ中占有100%的地位:stackoverflow.com/faq - Jagger
@GOTO0 代码辅助是我使用Eclipse的主要原因。:] - Jagger
@Jagger 我在这里遇到了相同的问题(我无法识别堆栈中的错误,因为它是德语),经过大量测试,我发现问题是后台运行的 Google 更新进程。禁用它后,Eclipse 就可以像魔法般工作了。我还进行了一个测试,重新启动 Google 更新进程,问题又出现了。所以看看你是否有这样的进程,试试看。让我知道结果。 - Jorge Campos
显示剩余8条评论
5个回答

1
那个德语消息可能表示存在严重问题。最近遇到多台机器出现类似问题。
清单如下:
  • 确保文件已备份
  • 在进一步调查之前,快速进行硬盘健康测试
    • 使用HD Tune等工具检查硬盘的健康诊断(SMART)数据
      • 如果出现错误,特别是与SSD磨损水平或待处理/替换扇区有关的错误,则您的硬盘基本上正在告别
  • 文件系统可能已损坏
    • 检查和修复文件系统(如果需要在启动时进行)
    • 无论checkdisk结果如何,都可以使用FSC来验证系统文件
  • 检查eclipse配置
    • 将Eclipse中索引器插件的可用并发性和资源分配设置降至最低
    • 禁用索引插件
    • 使用开箱即用的Eclipse安装进行测试
    • 可以删除本地maven存储库和其他临时或中间存储位置
  • 检查IO负载。
    • 通过资源监视器中的磁盘视图(通过任务管理器访问)查找标识IO密集型进程
      • 是否已经检出了许多文件,并运行类似Tortoise Shell-Extensions的东西?
        • 尝试在没有Windows Shell&Explorer的情况下在Eclipse中工作:通过任务管理器(CTRL + Shift-ESC)杀死所有explorer.exe实例。如果需要,可以从任务管理器中再次运行“explorer”。
          • 如果没有问题,请删除或重新配置此类shell扩展程序,然后重新启动并继续正常操作(我已经解决了一个问题)
    • 暂时禁用实时防病毒保护,可能要进行完整扫描后
    • 停止和/或卸载其他IO密集型后台进程
  • 可能存在驱动程序问题
    • 尝试更新或降级到最近更换的存储驱动程序(或者如果可能,则使用Windows附带的驱动程序)
  • 在安全模式下启动并测试(在启动时按F8键,在Windows闪屏屏幕之前)
    • 如果您可以在此处无问题地工作,则问题很可能是由服务或其他软件组件引起的,这些软件组件在安全模式下已被禁用(需要进一步调查有关有问题的软件)
  • 检查数据传输错误或其他硬件故障
    • 检查(拉出和插入)电缆
    • 在其他连接器(或更好的其他控制器)或另一台计算机上测试磁盘
    • 将工作目录复制到另一个物理驱动器(可能是外部驱动器),然后查看是否可以在那里无错误地工作
    • 使用memtest86+等工具进行“离线”内存测试

这是很多提示。我会选择在安全模式下启动Windows,看看会发生什么。 - Jagger
不行,在安全模式下也是同样的情况。 - Jagger

0

0

根据我的经验,Eclipse会因为正在重建一些内部搜索索引或数据库而导致计算机卡顿。在Eclipse软件更新或主要版本更改后频繁减速。

我无法理解Eclipse内部到底发生了什么,我认为软件更新或版本更改可能会对工作区元数据产生负面影响。

因此,我找到了一个很好的解决方法,即删除工作区内的.metadata文件夹并重新导入所有项目。

请记住:

  • 为了确保不会丢失任何内容,请在删除.metadata之前备份您的工作区目录
  • 在删除.metadata文件夹之前,请关闭Eclipse

重新导入所有项目非常容易。 您只需要从菜单中选择文件 -> 导入 -> 现有项目到工作区

我使用的是Mac,但在Windows下应该是相同的。然后选择您的工作区根目录并导入所有项目。

enter image description here


这个问题发生在全新安装的Eclipse上,因此项目不是问题所在。正如我所写的那样,将相同版本的Eclipse复制到另一台相似的机器上证明了我的机器出了问题。 - Jagger

0

正如其他人所建议的那样,问题似乎来自于Code Recommenders插件。这可能不是一个永久性的解决方案,但我建议您尝试暂时卸载该插件,看看问题是否仍然存在。

除此之外,我建议您尝试一般的PC故障排除步骤:

  1. 重新启动计算机
  2. 重新安装JDK
  3. 重新安装Win 7和Eclipse(核选项)

我在Stackoverflow上阅读了一些其他的线程。即使禁用了那些插件,问题仍然存在。 - Jagger
这只是一种瞎猜,但这台机器是运行在HDD还是SSD上?其他CPU / 硬盘访问密集型应用程序有任何问题吗?既然您提到它在其他计算机上无缝运行,我认为这可能是与该特定计算机的硬件或低级别操作系统有关的问题。 - Matt Vukas

0

这个问题似乎与Eclipse Code Recommenders有关。他们刚刚发布了今天的这个插件的新版本,请查看更新说明。也许在你的IDE被冻结之前,你可以尝试卸载或更新该模块。

你尝试使用其他的Eclipse安装程序/版本了吗?我建议你尝试使用Spring STS IDE,它只是另一个带有一些自定义设置的Eclipse。


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