将库添加到java Web应用程序会导致java.lang.OutOfMemoryError:PermGen空间?

时间:2011-07-14 14:54:44

标签: tomcat permgen

当我尝试将库(在本例中为:iText-2.0.8.jar)添加到我的java Web应用程序(JSF)并重新启动Tomcat时,一切似乎都很好。登录页面也会呈现。然而,当我登录时,应用程序几乎立即抛出臭名昭着的java.lang.OutOfMemoryError: PermGen space错误。

使用-XX:MaxPermGen=128M增加PermGen大小并不能解决问题,即使是2048m等大量问题也无法解决问题。 当我取出添加的罐子时,一切都很好。

有没有人知道如何诊断这个问题?

2 个答案:

答案 0 :(得分:1)

我最近在Windows 2000服务器64位上使用java 6在Jetty上运行XWiki几乎完全相同。

添加以下2个命令行开关为我解决了这个问题:

  • -XX:+ CMSClassUnloadingEnabled
  • -XX:+ CMSPermGenSweepingEnabled

对不起,上面没有帮助 试试这个-XX:MaxPermSize=128M而不是-XX:MaxPermGen=128M

答案 1 :(得分:1)

在筛选this thread后,我读了this blog post

我刚刚切换到JRockit JVM,到目前为止我没有遇到任何java.lang.OutOfMemoryError: PermGen space错误。

作为奖励,我的网络应用程序现在运行得更快。