java.lang.OutOfMemoryError:PermGen空间

时间:2011-01-28 11:10:17

标签: java tomcat6 permgen

我收到以下错误 “http-9000-5”java.lang.OutOfMemoryError:PermGen space

org.apache.catalina.core.ApplicationDispatcher调用 严重:Servlet jsp的Servlet.service()引发了异常 java.lang.OutOfMemoryError:PermGen space。

我的应用程序使用axis2.I增加了堆大小1024mb.But它不工作。会出现什么问题。请解决

5 个答案:

答案 0 :(得分:16)

PermGen和堆大小彼此不同。

你需要像这样增加permgen空间:

-XX:PermSize=256m 
-XX:MaxPermSize=256m

添加此标志。

另请注意:explaining-java-lang-outofmemoryerror-permgen-space和此:how-to-deal-with-java-lang-outofmemoryerror-permgen-space-error

希望这有帮助。

答案 1 :(得分:15)

你需要在tomcat参数中设置一些东西

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 
-server -Xms1536m -Xmx1536m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m 
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"

注意:XX:MaxPermSize参数=256米

答案 2 :(得分:6)

如果您使用Tomcat作为Eclipse的服务器,请转到服务器视图,然后双击Tomcat,然后“打开启动配置”,转到参数选项卡,并在设置-Dcatalina.base =“”之后将此设置为

-Xms256m -Xmx512m -XX:MaxPermSize=512m -XX:PermSize=128m

答案 3 :(得分:2)

除了提高PermGen大小外,请尝试使用

启用permgen垃圾回收
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

答案 4 :(得分:0)

尝试增加JVM的ram分配。它应该有所帮助。

修复eclipse:你可以在eclipse偏好中配置它,如下所示

Windows - >偏好(在mac上:eclipse - >偏好) Java - >已安装的JRE 选择JRE并单击Edit 在默认VM参数字段中键入--Xms256m -Xmx512m -XX:MaxPermSize = 512m -XX:PermSize = 128m。 (或者你的记忆偏好,对于1 gb的ram是1024) 点击完成或确定。