【问题标题】:Adding a library to java web app causes java.lang.OutOfMemoryError: PermGen space?将库添加到 Java Web 应用程序会导致 java.lang.OutOfMemoryError: PermGen space?
【发布时间】:2011-07-14 14:54:43
【问题描述】:

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

使用-XX:MaxPermGen=128M 增加 PermGen 大小并不能解决问题,即使是像 2048m 这样的大容量也不能解决问题。 当我删除添加的罐子时,一切都很好。

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

【问题讨论】:

    标签: tomcat permgen


    【解决方案1】:

    我最近在 Windows 2000 服务器 64 位上使用 java 6 在 Jetty 上运行 XWiki 时遇到了几乎完全相同的问题。

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

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

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

    【讨论】:

    • 感谢您的回答,但遗憾的是它并没有解决我的问题。
    • 还是不走运,明天我要睡一觉,然后再摸索这些选项。
    【解决方案2】:

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

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

    另外,我的 Web 应用程序现在也运行得更快了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-20
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多