有大量jar包的时候报错:
java.lang.OutOfMemoryError: PermGen space我在TOMCAT7解压版本下,部署了很多发布项目,每个发布项目用到了大量的jar包,当我启动TOMCAT的报错
java.lang.OutOfMemoryError: PermGen space
网上说 WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
但是我实验后,问题依旧。
所以我想怎么将共用的JAR包放在一个目录下,所有的发布项目都引用这一个共享目录。
------解决方案-------------------- JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=128m -XX:MaxPermSize=256m"
------解决方案--------------------XX:MaxNewSize:这参数是设置JAVA堆区域新生代内存的最大可分配大小
XX:MaxPermSize:这个才是设置永久带的大小
------解决方案--------------------是不是用快捷方式启动的tomcat?直接到tomcat安装目录下点击exe文件启动试试。
------解决方案--------------------增加 -XX:PermSize=256m
-XX:MaxPermSize=256m 试试
------解决方案--------------------在tomcat 中新建一个comm/lib文件夹,拷贝所有的jar 进去,然后再catalina.properties 文件中增加配置
comm.loader=${catalina.base}/comm/lib,${catalina.base}/comm/lib/*.jar
就可以共用JAR包了
------解决方案--------------------http://my.oschina.net/benhaile/blog/214159
看看这里有帮助
Java 8新特性探究(九)跟OOM:Permgen说再见吧
------解决方案--------------------我以前也遇到过这个问题 我当时改参数也没有搞定 最后换了一下tomcat就好了 最主要的原因还是空间不够了 我也不知道当时为什么修改参数不行 所以现在从tomcat7换成6之后 一直用的是6 感觉还是6比较稳定