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

来源:互联网 发布:matlab 字符串数组 编辑:程序博客网 时间:2024/05/21 00:53

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

在运行 web 项目时,有时会报如下错误:

java.lang.OutOfMemoryError: PermGen space at
java.lang.ClassLoader.defineClass1(Native Method) at
java.lang.ClassLoader.defineClass(ClassLoader.java:621) at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net

.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net

.URLClassLoader.access$000(URLClassLoader.java:56) at java.net

.URLClassLoader$1.run(URLClassLoader.java:195) at
java.security.AccessController.doPrivileged(Native Method) at
java.net

.URLClassLoader.findClass(URLClassLoader.java:188) at
java.lang.ClassLoader.loadClass(ClassLoader.java:307) at
java.lang.ClassLoader.loadClass(ClassLoader.java:252) at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:182)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321) at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

这是内存溢出错误,我的解决方法分如下两步:
一、在 catalina.bat 的第一句下面添加如下代码:

set JAVA_OPTS=-server -Xms512m -Xmx2048m   -XX:MaxNewSize=1024m -XX:PermSize=512M -XX:MaxPermSize=2048m  

二、在 Window->Preferences->Java->Installed JREs 下添加如下代码:

-Xms512m -Xmx2048m   -XX:MaxNewSize=1024m -XX:PermSize=512M -XX:MaxPermSize=2048m

这里写图片描述
这里写图片描述

阅读全文
0 0
原创粉丝点击