Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年9月20日 10:22:56 星期二
http://fanshuyao.iteye.com/
一、问题描述
在Eclipse中启动Tomcat(部署2个项目时),访问时,出现java.lang.OutOfMemoryError: PermGen space
原因就是内存溢出,因为Tomcat本身默认的内存是比较小的,如果部署多个项目,内存就不够用了,因为需要把内存修改得大点。
错误信息如下:
2016-9-20 10:25:21 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [spring] in context with path [/businesshall] threw exception [Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space] with root cause java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.jasper.compiler.ParserController.getPageEncodingForJspSyntax(ParserController.java:479) at org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:420) at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:190) at org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:119) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:194) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:374) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:341) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:662) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
二、解决方案
1、在Eclipse点击Tomcat打开配置页面,如下图所示:
2、点击open launch configuration
3、进入Arguments标签项
4、配置VM Arguments,加入内存的相关配置,如下图所示:
-Xms512m -Xmx1024m -XX:PermSize=512M -XX:MaxPermSize=1024M
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年9月20日 10:22:56 星期二
http://fanshuyao.iteye.com/
相关推荐
解决 Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的关键是增加 JVM 的内存空间,通过添加合适的参数,可以避免 PermGen space 溢出,确保项目的稳定运行。
4. **调整PermGen空间**:在Java 8之前, PermGen 区域用于存储类的元数据,如果这个区域耗尽,会出现`java.lang.OutOfMemoryError: PermGen space`错误。在Java 8中,这部分被MetaSpace取代,可通过`-XX:...
具体表现为在访问部署的应用程序时出现`java.lang.OutOfMemoryError: PermGen space`错误。这一错误通常是因为JVM(Java虚拟机)的内存设置不合理导致。 #### 内存溢出原因分析 内存溢出主要是由于JVM在运行时分配...
当程序创建的对象过多或单个对象占用内存过大时,如果没有足够的空闲内存来分配新对象,JVM就会抛出“OutOfMemoryError: Java heap space”错误。这可能是由于以下原因造成的: 1. **初始堆大小设置不当**:默认...
在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这类错误提示。这表明当前分配给Java虚拟机(JVM)的内存不足以支持程序正常运行,即发生...
`java.lang.OutOfMemoryError:Java heap space`是一个常见的异常,但它通常是可以通过调整JVM参数、优化代码逻辑以及使用适当的工具来检测和解决内存泄露等方式来有效处理的。开发者应当养成良好的编程习惯,及时...
更低版本的JDK6、JDK7可能需要设置Java内存-XX:PermSize=128M -XX:MaxPermSize=512M,否则可能出现这种类型的内存溢出:java.lang.OutOfMemoryError: PermGen space。 Servlet2.5或更高版本(如Tomcat6或更高版本)。...
更低版本的JDK7可能需要设置Java内存-XX:PermSize=128M -XX:MaxPermSize=512M,否则可能出现这种类型的内存溢出:java.lang.OutOfMemoryError: PermGen space。 Servlet3.0或更高版本(如Tomcat7或更高版本)。 ...
-XX:MaxPermSize=512M,否则可能出现这种类型的内存溢出:java.lang.OutOfMemoryError: PermGen space。 Servlet3.0或更高版本(如Tomcat7或更高版本)。 MySQL5.5或更高版本(如需使用MySQL5.0,可将mysql驱动版本...
- **异常提示**:当出现`java.lang.OutOfMemoryError: PermGen space`时,表示PermGen内存不足。 - **调整参数**:通过设置`-XX:MaxPermSize`来调整PermGen的大小,避免PermGen内存溢出。 #### 内存分析工具 **...
- **非堆内存溢出**: 报错为`java.lang.OutOfMemoryError: PermGen space`,是因为方法区(Method Area)或永久代(PermGen Space)内存不足。 ##### 2. JVM内存参数 - **-Xms**: 设置JVM初始分配的堆内存大小。 -...
**5.2 java.lang.OutOfMemoryError: PermGen space** 问题描述:在Eclipse中使用Tomcat启动项目时,可能会遇到内存溢出错误。 **解决方法:** - 调整JVM参数以增加内存分配。 - 在Eclipse中打开Run Configurations...
- `-XX:PermSize=128M`:设置永久代(PermGen space)初始大小为128MB。 - `-XX:MaxPermSize=256M`:设置永久代的最大大小为256MB。 #### 四、Tomcat中的JVM设置 对于部署在Tomcat上的Java Web应用程序来说,合理...
如果你遇到内存溢出错误(`java.lang.OutOfMemoryError: PermGen space`),可以通过修改Maven配置解决: ```bash export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m" ``` **3.3 使用Mininet测试** Mininet是一...
java.lang.OutOfMemoryError: PermGen space ``` **解决方案**: 1. **增加JVM内存**:通过设置`-DMAVEN_OPTS`参数来调整JVM的内存分配。例如,可以通过以下命令行参数增加内存大小: ``` -DMAVEN_OPTS=-Xms1024...