1.在MyEclipse中修改
原文:http://shijinling87807697.iteye.com/blog/1159518
myeclipse启动tomcat时jvm溢出,但是直接启动tomcat就没有问题
问题:
java.lang.NoClassDefFoundError: Could not initialize class com.boco.webmaster.model.RoomModel
Caused by:OutOfMemoryError: PermGen space
问题解决:
当项目用到很大的内存时(比如程序很是依赖内存,把对象要放到session中)。
也就是说大型项目会在tomcat中catalina.bat文件中添加这样这样的条件:
set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -Xmn64m -XX:PermSize=256m -XX:MaxPermSize=512m -Xloggc:gc-tnms.vgc
这时我们直接启动tomcat时,项目是没有问题的,但时当我们使用myeclipse间接地启动tomcat时,就会出现
原因就是: myeclipse中 myeclipse中配置的 参数和 tomcat中的不一样。 如下操作,对 myeclipse进行设置:Window -》 Preferences -》 Tomcat -》 JDK -》 Optional Java VM arguments:
-Xms1024m -Xmx1024m -Xmn64m -XX:PermSize=256m -XX:MaxPermSize=512m Dcom.sun.management.jmxremote=true 问题完美解决。
2.在tomcat中修改
原文:http://hi.baidu.com/oncard/blog/item/c406ddef6bfa1d2aadafd5df.html
windows设置
修改TOMCAT_HOME/bin/catalina.bat,在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m