前几天,为了新项目装了 JDK 6.21,在全新的 Workspace 下载了 CVS 上的项目。不知道做了什么事情就 Eclipse 毫无征兆地 Crash 了,当时也没有特别在意,就下班回家了。

问题搁置到今天…稍微做一些很小的动作,即使是删除一个很小的文件,或者空目录,也会发生 PermGen 错误,严重时就 Crash…可是 eclipse.ini 里面有配置:

--launcher.XXMaxPermSize
256M

这是 Eclipse 的默认配置了,以前可能是 40,太小不够用,256 肯定是够的了。

看来是这个配置不起作用了。找到了一个 work-around,但是它没有说明真正的原因。

为什么这个配置不起作用了呢,在 Eclipse 的官方 WikiSun 的官方 bug 网站 找到了症结所在:原来在从 20 到 21 的升级过程中,Sun 把 Version 里面的 Company 从「Sun Microsystems, Inc」变成了「Oracle」

在 Eclipse Wiki 上有这么三条意见:

  1. Switch back to ‘1.6.0_20’ (as of July 19, 2010 it can still be downloaded here)
  2. Change the commandline for launching or add the following line after “-vmargs” to your Eclipse.ini file: -XX:MaxPermSize=256m
  3. 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 给替换掉了,试验了几番下来,没问题了总算。