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/24949408/

相关文章:

asp.net - 即使仍有可用内存,w3wp.exe 也会耗尽内存

Python - 未引发异常

java - GUI 中的异常处理 : Unable to show message dialog

memory-leaks - 使用 MeteorJS 可拖动 jQuery UI 中的内存泄漏?

c++ - 如何在 C++ 中释放分配的静态值?

java - 通过 XML 与服务器和 Android 客户端通信

language-agnostic - 哪个,为什么,你更喜欢异常或返回代码?

java - 在 Java 中设置异常原因

c++ - 等号是否在 char * 中重新分配内存?

php - OOM Killer - 仅杀死 PHP 实例