同时将三个工程发布到一个tomcat下,启动出现内存溢出异常:
java.lang.OutOfMemoryError: PermGen space
如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下使用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)
那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh (windows中修改catalina.bat)
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=256m
在eclipse中可以这样设置:
java>已安装的JRE>编辑>默认VM参数,在里面填上:
-Xms256m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=256m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
分享到:
相关推荐
在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...
解决 Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的关键是增加 JVM 的内存空间,通过添加合适的参数,可以避免 PermGen space 溢出,确保项目的稳定运行。
本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....
tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat
当应用程序加载大量类或者使用了大量的静态变量和常量时,PermGen space可能会耗尽,从而引发`java.lang.OutOfMemoryError: PermGen space`错误。对于频繁部署或重载JSP的Web应用,如Tomcat,这个问题尤为常见。 ...
4. **调整PermGen空间**:在Java 8之前, PermGen 区域用于存储类的元数据,如果这个区域耗尽,会出现`java.lang.OutOfMemoryError: PermGen space`错误。在Java 8中,这部分被MetaSpace取代,可通过`-XX:...
5. **增大PermGen或Metaspace大小**:如果你看到 `OutOfMemoryError: PermGen space` 或 `Metaspace`,这是方法区溢出,可以通过 `-XX:MaxPermSize` (对于老版本JVM) 或 `-XX:MaxMetaspaceSize` (对于Java 8及以后...
这个错误可能由多种原因引起,主要分为堆内存溢出(Heap Space)和非堆内存溢出(如 PermGen 或 Metaspace)。 1. **堆内存溢出**: - **原因**:这是最常见的`OutOfMemoryError`类型,当程序创建了太多对象,导致...
【情况三】:`java.lang.OutOfMemoryError: PermGen space` 此错误是因为持久代(PermGen)内存不足。在Java 8之前,PermGen用于存储类元数据和静态变量,当类加载过多或存在内存泄漏时可能发生溢出。解决方案是通过...
特别是在Web应用环境下,如部署Web应用、使用JSP预编译等场景下,若配置不当,很容易触发`java.lang.OutOfMemoryError: PermGen space`异常。 #### 几个关键因素导致PermGen Space溢出: 1. **第三方库**:使用...
当 PermGen space 不足时,可能会导致 java.lang.OutOfMemoryError: PermGen space。 在实际应用中,服务器通常设置 Xms 和 Xmx 相等,以避免在每次 GC 后调整堆的大小。如果 Xmx 不指定或者指定偏小,应用可能会...
针对 Tomcat 出现 `java.lang.OutOfMemoryError: PermGen space` 和 `java.lang.OutOfMemoryError: Java heap space` 的问题,通过调整 JVM 的内存配置以及优化应用本身,可以有效避免内存溢出的发生。同时,对于...
- 调整永久代(PermGen space,JDK 7及以前版本使用)或元空间(Metaspace,JDK 8及以上版本使用)大小。对于永久代,可以使用`-XX:PermSize`和`-XX:MaxPermSize`参数进行配置;对于元空间,则通过`-XX:...
1. **PermGen Space内存溢出**: - PermGen Space是用于存储类元数据的空间,当系统中加载了过多的类且未被卸载时容易出现此类问题。 - 解决方案是增加PermGen Space的大小,可以通过设置`-XX:PermSize`和`-XX:...
JVM 内存溢出类型有两种:java.lang.OutOfMemoryError: PermGen space 和 java.lang.OutOfMemoryError: Java heap space。PermGen space 是非堆内存,用于存放类的信息,GC 不会释放该空间。如果 web 应用使用了大量...