小编典典

处理“java.lang.OutOfMemoryError: PermGen space”错误

all

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

java.lang.OutOfMemoryError: PermGen 空间

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

是什么原因造成的,可以做些什么来避免它?我该如何解决这个问题?


阅读 91

收藏
2022-02-25

共1个答案

小编典典

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

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

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

如果您收到错误 ,则指定的服务不作为已安装的服务存在, 您应该运行:

tomcat6w //ES//servicename

其中 _ servicename_ 是在 services.msc 中查看的服务器名称

资料来源:orx 对Eric
的敏捷答案
的评论。

2022-02-25