日期:2014-05-20  浏览次数:20752 次

有大量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比较稳定