tomcat:内存溢出异常解决nested exception is java.lang.OutOfMemoryError: PermGen space
最近公司有个很老的javaee项目,而且用到大量的第三方jar包,以及反射生成了太多的类,导致非堆内存中永久保存区域不够,产生了 java.lang.OutOfMemoryError: PermGen space异常。内存溢出。
解决方案
- 给JVM加大内存
方案一:
1.eclipse中分配内存如下,追加内容如下:
- -Xms512m -Xmx512m -XX:PermSize=512M -XX:MaxPermSize=512m
- 双击Tomcat server
- 点击Open launch configuration
- 选择Arguments,给VM追加:-Xms512m -Xmx512m -XX:PermSize=512M -XX:MaxPermSize=512m
方案二:
2.修改tomcat的bin目录下的catalina.bat的文件,追加内容如下:
- set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=256M -XX:MaxPermSize=512m
在rem ----- Execute The Requested Command ---------------------------------------下面添加
总结:
方案一适合在本地开发使用,方案二则是上线部署时使用。根据计算机内存大小来适当分配。最后,异常完美解决了!!! java.lang.OutOfMemoryError: PermGen space。摸鱼吧!!!