exception - 处理 "java.lang.OutOfMemoryError: PermGen space"错误

标签 exception memory-leaks out-of-memory java-6 permgen

最近我在我的网络应用程序中遇到了这个错误:

java.lang.OutOfMemoryError: PermGen space

这是一个典型的 Hibernate/JPA + IceFaces/JSF 应用程序,运行在 Tomcat 6 和 JDK 1.6 上。 显然,这可能会在重新部署应用程序几次后发生。

是什么原因造成的,如何避免? 我该如何解决这个问题?

最佳答案

解决方案是在启动 Tomcat 时将这些标志添加到 JVM 命令行:

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

您可以通过关闭 tomcat 服务,然后进入 Tomcat/bin 目录并运行 tomcat6w.exe 来做到这一点。在“Java”选项卡下,将参数添加到“Java 选项”框中。单击“确定”,然后重新启动服务。

如果你得到一个错误指定的服务不作为已安装的服务存在你应该运行:

tomcat6w //ES//servicename

servicename 是在 services.msc 中查看的服务器名称

来源:orx对Eric's Agile Answers的评论.

关于exception - 处理 "java.lang.OutOfMemoryError: PermGen space"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380536/

相关文章:

C++(标准)异常和 Unicode

java - Spring DAO Repository 异常处理

c++ - 一个奇怪的内存泄漏问题

java - 启动期间 IntelliJ java.lang.ClassNotFoundException : com. intellij.ide.plugins.PluginManager

java - 如何处理未经检查的异常?

java - 在 Java 7 中加载 KeyStore 会泄漏类加载器

java - 此代码中的 LDAP 连接泄漏

linux - 即使有足够的可用内存也会调用 oom

java.lang.OutOfMemoryError 与 ArrayList.addAll()

android - 如何实现图片库(本 map 片)