Tomcat java.lang.OutOfMemoryError: PermGen space error

Often time, Tomcat may hits the following java.lang.OutOfMemoryError: PermGen space error.

java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
It’s usually happened after the Tomcat restarts a few times.

1. Solution
By default, Tomcat is assigned a very little PermGen memory for the running process. To fix it, increase the PermGen memory settings by using the following Java VM options.

-XX:PermSize<size> - Set initial PermGen Size.
-XX:MaxPermSize<size> - Set the maximum PermGen Size.
In the next step, we will show you how to set the VM options in Tomcat, under Windows and Linux environment.

2. Windows
Tomcat is managed by this script file catalina.bat, dive inside the script, you will find out that catalina.bat always find and run the setenv.bat file to set the environment variables.

{$tomcat-folder}\bin\catalina.bat
//...
rem Get standard environment variables
if not exist "%CATALINA_BASE%\bin\setenv.bat" goto checkSetenvHome
call "%CATALINA_BASE%\bin\setenv.bat"
goto setenvDone
:checkSetenvHome
if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
:setenvDone
//...
2.1 To set the environment variable on Windows, create a setenv.bat manually, and put it into the ${tomcat-folder}\bin folder.

${tomcat-folder}\bin\setenv.bat
set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xms128m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m
P.S No double quotes, set JAVA_OPTS={value}.

2.2 Restart Tomcat, it will call the setenv.bat file to set the environment variable automatically.

{$tomcat-folder}\bin\catalina.bat restart

时间: 2024-11-11 15:16:01

Tomcat java.lang.OutOfMemoryError: PermGen space error的相关文章

Tomcat – java.lang.OutOfMemoryError: PermGen space Cause and Solution

Read more: http://javarevisited.blogspot.com/2012/01/tomcat-javalangoutofmemoryerror-permgen.html#ixzz3QDWa3Zqi Tomcat web server often suffers from java.lang.OutOfMemoryError: PermGen space whenever you deploy and undeploy your web application coupl

Tomcat – Java.Lang.OutOfMemoryError: PermGen Space

很多时候,在开发阶段Tomcat重复的重启过程中会遇到java.lang.OutOfMemoryError : PermGen space 错误. 1 2 3 4 java.lang.OutOfMemoryError: PermGen space         at java.lang.ClassLoader.defineClass1(Native Method)         at java.lang.ClassLoader.defineClass(ClassLoader.java:620

myeclipse tomcat java.lang.OutOfMemoryError: PermGen space错误的解决方法

错误代码: java.lang.OutOfMemoryError: PermGen space 原因分析: myeclipse或tomcat的内容分配的不够用,启动失败 解决方法: 1.找到tomcat安装目录的这个文件\apache-tomcat-7.0.41\bin\catalina.bat,打开,在里面找到这句:rem ----- Execute The Requested Command .在这句下面添加:set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx10

tomcat java.lang.OutOfMemoryError: PermGen space

查阅网上,问题大概原因是 tomcat中部署项目引用第三方jar过多导致,可以在eclipse 中设置tomcat jvm 参数,如: -Xms800m -Xmx800m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m 每个参数的意义(以下内容来源于:http://unixboy.iteye.com/blog/174173): 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制

tomcat服务器java.lang.OutOfMemoryError: PermGen space

一挂就报内存溢出 下面是TOMCAT日志 JAVA程序是没有报错, Nov 24, 2009 4:07:02 PM org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet jsp threw exception java.lang.OutOfMemoryError: PermGen space Nov 24, 2009 4:07:02 PM org.apache.cat

tomcat 开启时,或者访问网页后PermGen space错误解决方法 java.lang.OutOfMemoryError: PermGen space

公司以前都是一个项目一个tomcat,为了整合,我把两个项目放到了一个tomcat下,结果打开tomcat后,随便访问几个网页,或者登录一个账号后就会报错,提示 java.lang.OutOfMemoryError: PermGen space 上网搜索后,发现是JVM的默认内存只有4M太小,开启tomcat后要加载所有项目,就会导致JVM的内存溢出. Windows下tomcat修改 .编辑tomcat的catalina.bat文件,在第一行的后面增加一句:set JAVA_OPTS=-ser

windows系统bat方式启动tomcat出现java.lang.OutOfmemoryError:PermGen Space 错误

1.问题情景: 在部署项目时,将两个应用部署到同一个tomcat下,通过startup.bat启动服务时,控制台出现出现java.lang.OutOfmemoryError:PermGen Space 错误服务器环境:    系统版本:windows server 2008 r2    安装内存:64GB    处理器:8核(具体型号记不得了) 2.解决方法: PermGen Space:全称是Permanent Generation Space,是指内存的永久保存区域,这块内存主要是被JVM存

Tomcat内存溢出解决java.lang.OutOfMemoryError: PermGen space

背景:把两个项目同时部署在tomcat,启动快好的时候,报java.lang.OutOfMemoryError: PermGen space 原因:因为两个项目的jar包太多,JVM把里面的class文件加载时把默认的内存撑爆了 解决方法: (1)查找了很多网上的方法,但是还是解决不了我的问题.我的解决方法是: 右键eclipse项目==>run as===èrun Configuration=看左边的Apache Tomcat 下面的tomcat…=è点击后右边的Argument, VM ar

解决tomcat中server.xml设置二级域名 [java.lang.OutOfMemoryError: PermGen space]

<Host name="XXX.XXX.XXX" debug="0" appBase="C:\\JavaWeb\\mytomcatServer\\XXX"  unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false">  <Alias>