一. 场景
1. 环境
IDE: Eclipse ( Version: Luna Release (4.4.0) )
Tomcat : apache-tomcat-6.0.41
2. 问题
当我们在Eclipse以Debug模式跑一个很大的项目时, 每次修改某个类的某个方法后, 内嵌的Tomcat自动reload,
就会抛异常 java.lang.OutOfMemoryError: PermGen space
文件位置: E:\work\workspace\Tomcat\apache-tomcat-6.0.41\bin\catalina.bat
修改位置:
:: 157 line -> setting PermSize
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=256M -XX:MaxPermSize=1024m
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=256M -XX:MaxPermSize=1024m
注: 此处设置, 仅仅针对 使用 startup.bat 启动 tomcat的方式. 与本文无关, 可不设置.
二. 解决
1. 用 Java VisualVM 查看内存使用情况 (可忽略)
位置: D:\install\jdk\jdk1.7.0_67\bin\jvisualvm.exe
界面:
2. 设置 PermGen Space的 大小
-XX:PermSize=256M -XX:MaxPermSize=1024m