关闭

Eclipse中通过Tomcat运行JavaWeb项目发生内存溢出:java.lang.OutOfMemoryError: PermGen space 错误的解决方案

标签: javawebeclipsej2ee内存溢出tomcat
8705人阅读 评论(4) 收藏 举报
分类:
运行JavaWeb项目的时候抛出异常:

Exception in thread “main” java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)

在eclipse集成tomcat环境下反复热发布应用也会出现此现象;

网上查找可知该异常产生的原因是JVM默认分配的4M运行空间过小,J2EE项目加载的类过多,造成内存溢出。

解决方案为通过添加下面的参数增加分配给JVM的内存空间:


-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m


网上的解决方案多半是针对纯Tomcat的情况,并非通过Eclipse启动的Tomcat。
或者修改eclipse.ini配置文件,不过这些方法都不适合Eclipse运行Tomcat抛出该异常的情况。

修改eclipse.ini配置文件增大的是Ecipse开发平台本身运行的JVM的空间,并非Eclipse启动Tomcat的内存空间。

正确的方法是,在任意一个项目上点击右键“Run As” – “Run Configurations…”,选中Tomcat Server,进入Arguments分页,在VM arguments中加入提升初始分配空间的参数,如下图所示:


7
0
查看评论

MyEclipse启动Tomcat出现Exception in thread "main" java.lang.OutOfMemoryError: PermGen space

解决方案: 设置MyEclipse中Tomcat使用的Jdk的VM arguments: -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m 如图:
  • duanyanrui
  • duanyanrui
  • 2014-04-03 10:14
  • 10822

Exception in thread "main" java.lang.OutOfMemoryError: PermGen space

Exception in thread "main" java.lang.OutOfMemoryError: PermGen space 在VM parameters中添加-XX:MaxPermSize=256m
  • lele892207980
  • lele892207980
  • 2013-09-03 17:09
  • 3455

Exception in thread "Timer-4" java.lang.OutOfMemoryError: PermGen space

 Exception in thread "http-8080-29" java.lang.OutOfMemoryError: PermGen space 按照      解决方法: 手动设置MaxPermSize大小 修...
  • mingtianhaiyouwo
  • mingtianhaiyouwo
  • 2015-12-07 17:14
  • 1051

启动tomcat时报错:Exception in thread "http-bio-8080-exec-2" java.lang.OutOfMemoryError: PermGen space

将项目部署到虚拟主机上,通过浏览器打开项目时就出现这个问题。而从异常我们很容易看出是由于内存溢出。 于是,为此虚拟主机分配更大的内存空间,在tomcat目录下的bin目录下的catalina.bat中修改如下:        修改TOMCAT_HOME/...
  • Mr_Pang
  • Mr_Pang
  • 2016-03-03 10:26
  • 4731

Exception in thread "http-8080-3" java.lang.OutOfMemoryError: PermGen space

在eclipse中经常报Exception in thread "http-8080-3" java.lang.OutOfMemoryError: PermGen space内存溢出的情况,解决办法: 先在eclipse安装目录中将eclipse的启动参数调大一些 ...
  • qq_25214695
  • qq_25214695
  • 2016-01-15 15:52
  • 1569

部署web项目时tomcat出现 Exception in thread "main"错误

最主要原因:容器使用的JDK版本不匹配比如tomcat7 就不支持JDK5,这是根本性的问题,解决方法:根据对应的tomcat使用相匹配的JDK,(因为我之前有一个项目用的是JDK1.5,新项目只是把环境变量变成1.7,这里忘改,所以一直报这个错,改下这里的JDK版本就可以了,前提是你的工具里要配置...
  • q2158798
  • q2158798
  • 2017-07-09 18:47
  • 1176

tomcate 报 PermGen space 错误Exception in thread "main" java.lang.OutOfMemoryError: PermGen space

tomcate 报 PermGen space 错误Exception in thread "main" java.lang.OutOfMemoryError: PermGen space 修改myEclipse中window===>preference===>...
  • liuzhen917
  • liuzhen917
  • 2014-08-04 14:02
  • 2631

eclipse内部启动tomcat,报内存太小或内存溢出问题解决

1.eclipse内部tomcat启动内存溢出问题解决。 window->preferences->java->installed  jres  修改为 -Xms256m -Xmx1024m -XX:PermSize=128M -X...
  • liuyunshengsir
  • liuyunshengsir
  • 2016-11-24 08:57
  • 2112

Eclipse tomcat内存溢出配置

场景   最近在eclipse中的tomcat服务器下放三个不同的应用程序,其中两个应用程序用到了各自的第三方jar包。刚开始时把这三个应用程序分别部署到各自的tomcat服务器运行,没问题。后来想通过第一个应用程序A,来分别跳转到应用程序B和应用程序C,于是把三个应用程序都部署到同一个tomcat...
  • lipp555
  • lipp555
  • 2016-01-29 11:20
  • 6213

Tomcat OutOfMemoryError错误的解决

测试好好的Tomcat Java Application,到了实际运行的时候,出现以下故障:运行一段时间以后,访问所有网页返回错误:2005-08-18 15:54:58 StandardWrapperValve[action]: Servlet.service() for servlet acti...
  • 54powerman
  • 54powerman
  • 2005-08-18 16:28
  • 7908
    个人资料
    • 访问:76981次
    • 积分:1368
    • 等级:
    • 排名:千里之外
    • 原创:61篇
    • 转载:0篇
    • 译文:0篇
    • 评论:16条
    文章分类