PermGen内存用尽错误 Fixing java.lang.OutOfMemoryError: PermGen space

JAVA 在进行Eclipse的插件开发时如果直接运行Eclipse Application, 下面错误往往时常发生:

java.lang.OutOfMemoryError: PermGen space

错误原因

默认的情况下, Sun JRE的class loader(类的加载器)只能使用最多64M的内存, 如果有大量的类, 所需内存超过这个数字, 以上错误就产生了.

解决方案

在VM args里面增加-XX:MaxPermSize=***m, 如 -Dosgi.requiredJavaVersion=1.5 -Xms96m -Xmx868m -XX:MaxPermSize=464m

更多信息

  • PermGen错误往往只由SUN的JRE产生, 其他厂商的JRE似乎不会产生这个错误
  • 上面讲的只是一种情况, 不止是Eclipse, 很多其他Java软件如web服务器之类也很容易产生这个错误.
  • -XX:MaxPermSize与-Xmx没有直接关系