`

PermGen space错误解决方法

 
阅读更多

报错:

Exception in thread "DispatcherThread" java.lang.OutOfMemoryError: PermGen space  

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space  

Exception in thread "State Saver" java.lang.OutOfMemoryError: PermGen space  

Exception in thread "AWT-Windows" java.lang.OutOfMemoryError: OutOfMemoryError  

 

原因:

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,

这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,

它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对

PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,

这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

 

 

解决办法:

 

第一种方法:修改tomcat/bin目录下的catalina.bat。

在“rem ----- Execute The Requested Command ----------------------”下加入

JAVA_OPTS="-server -Xms800m -Xmx800m -XXNewSize=256M -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m" 。

这种方法在只使用tomcat时管用,但使用eclipse时不管用。

 

第二种方法:修改eclipse.ini。

加入

-vm

d:/jdk6/bin/javaw.exe

-vmargs

-Dosgi.requiredJavaVersion=1.5 

-Xms512m 

-Xmx1024m

-XX:PermSize=256M 

-XX:MaxPermSize=512m

这种方法有时候也管用,但这次不起作用了,具体原因我也不清楚,我猜可能是写了上面这段跟eclipse中启动的tomcat服务器没啥关系,所以解决不了tomcat的报错问题。

 

第三种方法:修改eclipse的Run Configurations。

点击“Run”-"Run Configurations",在打开的窗口中点击“Arguments”选项卡。

在VM arguments中内容最下(后)边输入:

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

 

分享到:
评论

相关推荐

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

    解决OutOfMemoryError: PermGen space

    这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于存储类的信息、常量、静态变量以及方法信息等。本文将详细介绍这一问题的成因及解决方案。 #### 一、PermGen space简介 PermGen space...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    总之,"java.lang.OutOfMemoryError: PermGen space"错误是由于Java虚拟机的 PermGen 区域内存不足造成的,可以通过增大 PermGen 区域的大小、升级JVM版本、优化类加载和库的使用等方式来解决。对于任何内存管理问题...

    PermGen space

    与普通对象的堆空间不同,PermGen Space主要负责存储类的结构信息,如类的方法、字段等,而这些信息是在类加载时创建并存储的。 #### 为何会出现PermGen Space的Out of Memory Error? 当应用程序加载了大量的类...

    解决JVM中得PermGen spac问题

    2. 使用了老版本的 cglib,导致 PermGen space 错误。 3. 使用了 log4j,导致 PermGen space 错误。 解决 Java heap space 问题: Java heap space 的设置是指 JVM 可以调配使用的内存空间的设置。JVM 在启动的...

    java.lang.OutOfMemoryError: PermGen space

    解决 PermGen 空间溢出的方法是增加JVM内存的分配。可以通过设置以下JVM参数来实现: - `-Xms` 参数定义了JVM初始堆内存的大小,例如 `-Xms256m` 指定了初始堆内存为256MB。 - `-Xmx` 参数定义了JVM最大堆内存的...

    Java内存不足PermGen space错误探究.pdf

    Java内存不足PermGen space错误通常出现在Java程序运行过程中,尤其是当Java EE服务器(如Tomcat、JBoss等)加载WAR或EAR包时。这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存...

    OutOfMemoryError-PermGen-space-的解决方案亲测有效

    解决OutOfMemoryError: PermGen space错误的关键在于理解PermGen空间的作用以及如何合理调整其大小。通过上述方法不仅可以解决当前的问题,还能提高应用程序的整体性能。此外,对于正在使用的开发工具和服务器环境,...

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat

    解决Eclipse Tomcat OutOfMemoryError:PermGen space的问题

    总的来说,遇到`OutOfMemoryError: PermGen space`问题时,首先要分析应用是否频繁加载大量类或使用大量库,然后通过增大 PermGen 区域的大小来解决。此外,升级到Java 8及以上版本也是一个有效的解决方案,因为这些...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....

    ssh Tomcat自动部署无需手动重启服务器设置

    本文主要介绍了使用ssh实现Tomcat自动部署的方法,以及解决OutOfMemoryError PermGen space系统错误的方法。 一、配置Tomcat server.xml文件 在Tomcat的conf文件夹下找到server.xml文件,并添加以下代码:虚拟目录...

    eclipse 内存溢出解决办法

    #### 三、PermGen Space 内存溢出的解决方法 1. **手动设置MaxPermSize大小** 为了防止PermGen Space内存溢出,可以通过调整JVM启动参数来手动设置PermGen Space的最大值。常用的命令行参数如下: ``` -Xms256...

    tomcat 出现 OutOfMemoryError 的解决方法

    #### 四、PermGen space 溢出的解决方法 1. **调整 PermGen space 的大小**: - 修改 Tomcat 的启动脚本 `catalina.bat` 或 `catalina.sh` 来调整 PermGen space 的初始大小和最大值。 - **Windows 环境**:在 `...

    Java内存溢出的详细解决方案

    如果应用中有很多CLASS,可能会出现PermGen space错误。 解决方案: * 设置 PermSize 和 MaxPermSize:可以使用 JVM 选项 -XX:PermSize 和 -XX:MaxPermSize 来设置 PermGen space 的大小。 * 减少Class数量:在...

    JAVA-OPTS参数设置.docx

    GC 不会在主程序运行期对 PermGen space 进行清理,所以如果应用中有很多 CLASS 的话,就很可能出现 PermGen space 错误。 解决 PermGen space 错误的方法: 1. 手动设置 MaxPermSize 大小。 2. 将相同的第三方 ...

    java.lang.OutOfMemoryError解决办法

    解决`PermGen space`溢出的方法通常是增加该区域的内存分配。可以通过JVM的启动参数来设定,例如`-XX:PermSize`用来设置初始大小,`-XX:MaxPermSize`用来设置最大大小。在示例中,推荐的设置是`-XX:PermSize=64M -XX...

Global site tag (gtag.js) - Google Analytics