微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

有大量jar包的时候报错:java.lang.OutOfMemoryError:

时间:2014-04-03 20:16  浏览:努力统计中...
我在TOMCAT7解压版本下,部署了很多发布项目,每个发布项目用到了大量的jar包,当我启动TOMCAT的报错 java.lang.OutOfMemoryError:PermGenspace 网上说WEBAPP下都用了大量的第三方jar,其大小超过了
我在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 试试

该回复于2014-04-02 17:53:55被管理员删除


都实验了以上,还是不行。

在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比较稳定
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------