在启动比较大的项目时,因为存在大量的jsp页面,所以在编译的时候会生成很多的.class文件,.class文件是都会被加载到jvm的方法区中,如果要加载的class文件很多,就会出现方法区溢出异常 java.lang.OutOfMemoryError: PermGen space.
解决办法是点击eclipse里的tomcat,在弹出的页面中找到“open launch configurations”,打开arguments叶签,在VM argument中的末尾添加-XX:PermSize=512M -XX:MaxPermSize=1024M,其中512为方法区大小,1024为最大大小。根据情况,调整方法区大小。适用于从eclipse中启动tomcat报permGen space异常的情况。修改步骤见附件图片。
如果是直接将项目放在webapp下面,点击starup.bat启动报此异常,需要在catalina.bat中添加对方法区大小的设置。
如果是在myeclipse中报此异常,可以直接在windows>preferences中找到tomcat,在vm argument中设置方法区大小。