当前位置: 代码迷 >> 综合 >> java.lang.OutOfMemoryError:PermGen space
  详细解决方案

java.lang.OutOfMemoryError:PermGen space

热度:9   发布时间:2023-11-07 19:23:17.0

分析原因:

    

导致OutOfMemoryError异常的常见原因有以下几种:

  1. 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
  2. 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
  3. 代码中存在死循环或循环产生过多重复的对象实体;
  4. 使用的第三方软件中的BUG;
  5. 启动参数内存值设定的过小;

此错误常见的错误提示:

  1. tomcat:java.lang.OutOfMemoryError: PermGen space
  2. tomcat:java.lang.OutOfMemoryError: Java heap space
  3. weblogic:Root cause of ServletException java.lang.OutOfMemoryError
  4. resin:java.lang.OutOfMemoryError
  5. java:java.lang.OutOfMemoryError

tomcat启动错误提示:

严重: Error waiting for multi-thread deployment of WAR files to complete

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space

Caused by: java.lang.OutOfMemoryError: PermGen space

解决方法: 手动设置MaxPermSize大小

在tomcat 的bin 下catalina.sh 里,位置cygwin=false前,手动添加一行(注意引号要带上,红色的为新添加的)

# OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"

cygwin=false

重启tomcat即可解决!