Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法

时间:2023-01-21 22:48:04

tomcat启动的时候出现这种错误一般是项目引用了太多的jar包,或者反射生成了太多的类,或者有太多的常量池,导致非堆内存中永久保存区域不够,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误,

这种情况可以通过jvm参数 -XX:PermSize=256M -XX:MaxPermSize=512m来配置这部分内存的大小(注意:此处内存是不会被java垃圾回收机制进行处理的地方,要合理配置,更不能超出操作系统的可用内存)。

具体设置步骤如下:

1.双击server中配置的tomcat

Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法

2.点击Open launch configuration

Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法

3.在打开的窗口中切换到Arguments选项,在VM arguments进行配置

Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法

到此配置完毕,当然在该区域还可以配置其他JVM参数,比如:初始堆大小(-Xms512m)和最大堆大小(-Xmx512m),

堆内存被jvm的垃圾回收机制管理,为避免在每次GC 后调整堆的大小,浪费资源,

服务器一般设置-Xms、-Xmx相等(默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制