tomcat - 将库添加到 java web 应用程序会导致 java.lang.OutOfMemoryError : PermGen space?

标签 tomcat permgen

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

使用 -XX:MaxPermGen=128M 增加 PermGen 大小并不能解决问题,即使是 2048m 这样的大容量也不能。 当我移除添加的 jar 时,一切都恢复正常了。

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

最佳答案

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

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

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

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

关于tomcat - 将库添加到 java web 应用程序会导致 java.lang.OutOfMemoryError : PermGen space?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6695255/

相关文章:

grails - 执行<g:render/> Grails 3.0.5时出错

css - 样式不适用于在 Tomcat Web 应用程序中使用 window.open 加载的 HTML 页面

java - Hibernate映射导致内存泄漏

java - 线程的无休止创建和运行是否会导致 PermGen OOM?

java - 堆的 PermGen 空间

java - 加载数据时达到饱和点;我如何控制 Java GC 生成?

Java - 在堆上内联初始化字符串数组内存分配?

java - Java keystore 的动态重新加载

java - 在 tomcat 7 中配置虚拟主机的问题

tcp 断开连接时的 Http session 持久性