当 Eclipse 遇上 JDK 6.21
前几天,为了新项目装了 JDK 6.21,在全新的 Workspace 下载了 CVS 上的项目。不知道做了什么事情就 Eclipse 毫无征兆地 Crash 了,当时也没有特别在意,就下班回家了。
问题搁置到今天…稍微做一些很小的动作,即使是删除一个很小的文件,或者空目录,也会发生 PermGen
错误,严重时就 Crash…可是 eclipse.ini 里面有配置:
--launcher.XXMaxPermSize
256M
这是 Eclipse 的默认配置了,以前可能是 40,太小不够用,256 肯定是够的了。
看来是这个配置不起作用了。找到了一个 work-around,但是它没有说明真正的原因。
为什么这个配置不起作用了呢,在 Eclipse 的官方 Wiki 和 Sun 的官方 bug 网站 找到了症结所在:原来在从 20 到 21 的升级过程中,Sun 把 Version 里面的 Company 从「Sun Microsystems, Inc」变成了「Oracle」
在 Eclipse Wiki 上有这么三条意见:
- Switch back to ‘1.6.0_20’ (as of July 19, 2010 it can still be downloaded here)
- Change the commandline for launching or add the following line after “-vmargs” to your
Eclipse.ini
file:-XX:MaxPermSize=256m
- For 32-bit Helios, download the fixed eclipse_1308.dll and place it into
(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
回退,我是不做的;第二条是个 work-around,文雅一点说是「另辟蹊径」,通俗一点是「旁门左道」;所以我用第三个方法,把 eclipse_1307.dll
给替换掉了,试验了几番下来,没问题了总算。