Eclipse Kepler在64位Ubuntu上冻结

19
我几天前刚将Ubuntu升级到14.04,并从32位切换到64位。自那以后,Eclipse变得非常不稳定。运行几分钟后,它将开始随机冻结更长的时间,特别是在代码完成时(已经禁用了),但也会在剪切/粘贴、偶尔保存和有时没有明显原因的情况下冻结。在冻结期间,它将将两个CPU提高到100%。有时它会回来,就好像什么都没有发生过,有时它会出现关于内存不足、超时或超过GC开销的错误。
我已经按SO上处理此问题的任何线程建议,将其Xmx增加到2GB,但这并没有帮助。实际上,其中建议的任何事情都没有帮助。
我正在使用Nodeclipse、Android开发人员工具、Subversive和SQLExplorer的Kepler版本。在升级之前,该设置完美无缺。
有人可以确认这个问题或(希望最后死亡)建议修复方法吗?如果其他人也有这个问题,我会提交一个错误报告。
更新
我已经下载了一个x86版本的Eclipse,以及Oracle Java 8和启动时提示缺少的任何缺失库,并且这证明更加稳定。 它仍然在内容协助上冻结,但除此之外,到目前为止似乎很稳定。 因此,肯定是某种与64位版本有关的问题。
总结已经尝试但无效的所有事情:
- 通过eclipse.ini中的Xmx设置将内存增加到2GB - 在eclipse.ini中添加-Dorg.eclipse.swt.browser.DefaultType = mozilla - 不同的JVM:OpenJDK 7、Oracle Java 7和8 - Eclipse的全新安装
我现在已经在bugs.eclipse.org上提交了一个错误报告:bug report 更新2:
似乎自从安装了32位版本的Eclipse(我已经删除了很长时间),64位版本也运行得更加稳定。 这对我来说没有意义,但在过去的几天里,它没有再次冻结。 有人可以确认吗?

不要紧……问题仍然存在 :(

另外,如果还有其他人遇到此问题,我希望您能在bugs.eclipse.org上的错误报告上发表“我也是”,因为那里迄今为止没有得到任何关注。

更新3

我尝试了一些其他方法,但都没有成功:

  • 按照https://bugs.eclipse.org/bugs/show_bug.cgi?id=404776#c22,将-Dorg.eclipse.swt.browser.XULRunnerPath=/dev/null添加到eclipse.ini中
  • 切换到不同的主题
  • 使用环境变量GDK_NATIVE_WINDOWS=true运行
  • 使用环境变量LIBOVERLAY_SCROLLBAR=0运行
  • 禁用“标记出现次数”功能

更新4,经过很长时间之后

显然这不是Eclipse本身的错误,而是JSDT的错误。根据错误报告,它已经在版本3.7中修复了,在安装新的Eclipse Mars之后,我无法确认 - 它仍然像以前一样糟糕。但由于新的Eclipse现在会不断地将我的CPU占用率提高到100%(对电池寿命不利......),所以我决定暂时停止使用它来进行JavaScript项目开发。

问题:有没有人遇到这个错误后确认它在JSDT 3.7中消失了?

更新5,经过很长很长很长时间

由于这个问题似乎一直被人们关注,所以我想给出最终的更新。这个错误最终开始受到关注,但前两个更新并没有为我解决这个问题(显然也适用于其他人)。由于Eclipse在当前状态下完全无法用于JavaScript开发,我最终放弃了它。然而,人们仍然在错误报告中抱怨这个问题,因此我认为它仍然没有得到解决。我现在正在使用Sublime Text - 非常愉快,但也有一点点难过。我真的很喜欢Eclipse。如果这个问题永远消失了,我会很高兴听到这个消息。


1
我在Ubuntu Studio 14.04上使用最新的ADT Bundle也遇到了同样的问题。 - daniel
@daniel 你的工作区中是否有任何可能被 JSDT 重新构建的 JavaScript 项目?我开始怀疑这是一个 JSDT 的问题。 - BadIdeaException
不,我也注意到更改主题很可能会增加崩溃的机会,我的意思是我安装了KDE桌面环境,对于gtk主题它使用oxygen-gtk,然后eclipse有时会崩溃,我选择了gtk的默认主题UbuntuStudio xfce的主题,现在没有问题,而且工作得很好,所以请确保您选择不同的主题并重新启动电脑以查看效果。 - daniel
尝试了您的建议选择不同的主题,但不幸的是它没有起作用。无论如何还是谢谢。 - BadIdeaException
刚拿到新硬件(Dell Precision 3800),安装了Ubuntu 14.04,但是我也遇到了各种Eclipse Kepler的问题,如不良行为/冻结/崩溃等。目前还没有找到任何解决方案。 - pakman
显示剩余12条评论
4个回答

6

我几天前也遇到了同样的问题。在eclipse.ini文件的末尾添加以下行后,问题得到了解决:

-Dorg.eclipse.swt.browser.DefaultType=mozilla

1
这个修复程序适用于旧版的Eclipse而不是Kepler。无论如何,即使在Kepler和Ubuntu 14.04上,我也遇到了冻结和崩溃的问题。 - pakman
@pakman 这些崩溃是在升级后几天开始的吗?我又开始经历这种崩溃了。上面的答案曾经解决过这些崩溃问题几个月前。 - Pedro Casagrande
这是一台全新的计算机(Dell precision m3800),配备了新安装的Ubuntu 14.04(含所有最新更新)。之前我使用Debian 7在另一台电脑上没有出现任何问题。 - pakman
我还添加了-XX:MaxPermSize = 512m,这似乎解决了冻结问题。 - Dmitry

1

我遇到了同样的问题,Lars的文章帮我解决了它。看起来是SWT和GTK3的问题。


谢谢!问题已解决。我刚刚升级到Ubuntu 16.04和STS(Spring Tool Suite - Eclipse),在创建类、运行测试等操作时开始出现冻结。问题已解决! - Salvatorelab

0

我曾经面临过同样的问题,现在仍然会遇到。不过在文件“eclipse.ini”中增加JVM大小后,出现的频率有所降低。

只需更改这些行:

-XX:MaxPermSize=256m
-Xms256m
-Xmx2048m

从终端启动Eclipse: :〜/桌面/eclipse$ ./eclipse

如果不能完全解决问题,它将减少冻结的频率。 希望能有所帮助。


谢谢您的建议,但不幸的是我已经尝试过了,没有帮助。 - BadIdeaException

-1

更新

https://bugs.eclipse.org/bugs/show_bug.cgi?id=404776

在评论线程中有几个解决方法。根据评论22的建议,我已将其添加到我的eclipse.ini文件中。

-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-Dorg.eclipse.swt.browser.XULRunnerPath=/opt/xulrunner/1.8.0.1/xulrunner

我曾经将Xulrunner安装到这个目录中,出于某种原因,不知道为什么选择了这个版本。


这并不是一个真正的答案,但我需要空间来粘贴我的系统配置数据。仅供比较,希望能有所帮助。

当我在PHP项目上工作时,我也遇到了同样的问题,这让我很烦恼:有时候在Ubuntu 14.04 64位上按下内容辅助/自动完成(Shift+Space)组合键时,eclipse 4.3会崩溃。在13.10上也发生过。

我不知道是什么原因导致了这个错误。然而,我注意到我的系统可用内存非常少。此外,JAVA_HOME变量指向了旧版本的JRE路径。

也许Alt-F2并输入unity --replace &可以帮助解决问题。或者你可以向compiz发送HUP信号。

我的eclipse配置

(开始帮助/关于Eclipse/安装详细信息/系统配置:

 eclipse.buildId=4.3.2.M20140221-1700
eclipse.commands=-os
linux
-ws
gtk
-arch
x86_64
-showsplash
/opt/eclipse/eclipse43jee//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp
-launcher
/opt/eclipse/eclipse43jee/eclipse
-name
Eclipse
--launcher.library
/opt/eclipse/eclipse43jee//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so
-startup
/opt/eclipse/eclipse43jee//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.appendVmargs
-exitdata
e5000d
-product
org.eclipse.epp.package.jee.product
-vm
/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
eclipse.home.location=file:/opt/eclipse/eclipse43jee/
eclipse.launcher=/opt/eclipse/eclipse43jee/eclipse
eclipse.launcher.name=Eclipse
eclipse.p2.data.area=@config.dir/../p2/
eclipse.p2.profile=epp.package.jee
eclipse.product=org.eclipse.epp.package.jee.product
eclipse.startTime=1398324869065
eclipse.vm=/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
eclipse.vmargs=-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni
-Dhelp.lucene.tokenizer=standard
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx3072m
-jar
/opt/eclipse/eclipse43jee//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
equinox.use.ds=true
file.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=/
gosh.args=--nointeractive
help.lucene.tokenizer=standard
http.nonProxyHosts=
http.proxyHost=127.0.0.1
http.proxyPort=8118
http.proxySet=true
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.printerjob=sun.print.PSPrinterJob
java.class.path=/opt/eclipse/eclipse43jee//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
java.class.version=50.0
java.endorsed.dirs=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/endorsed
java.ext.dirs=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext
java.home=/usr/lib/jvm/java-6-openjdk-amd64/jre
java.io.tmpdir=/tmp
java.library.path=/usr/lib/x86_64-linux-gnu/jni
java.runtime.name=OpenJDK Runtime Environment
java.runtime.version=1.6.0_31-b31

你好,这种情况发生在什么样的项目中?(例如:Java、JavaScript、PHP等) - BadIdeaException
php- 我会把这个加入到我的“答案”中。 - knb
你的 PHP 项目中是否有任何 JavaScript 部分需要 JSDT 编译器运行?因为我开始怀疑这是一个 JSDT 问题,而不是 SWT... - BadIdeaException
这是一个XULRunner问题。我已经在我的eclipse.ini文件中添加了几行内容。一旦有更新,我会再次更新我的答案。看起来这是Eclipse Bug 404776,参见评论22 https://bugs.eclipse.org/bugs/show_bug.cgi?id=404776 和相关评论。 - knb
不幸的是,这也没有帮助。我正式感到困惑。 - BadIdeaException

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