Exception in thread "Druid-ConnectionPool-Destory" java.lang.OutOfMemoryError: PermGen space
at java.util.IdentityHashMap.keySet(IdentityHashMap.java:935)
at com.alibaba.druid.pool.DruidDataSource.removeAbandoned(DruidDataSource.java:1312)
at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:1294)
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
我用eclipse启用tomcat7就报这个错。要是直接在tomcat7中启动,就能运行项目中的内容。
我想用eclipse启用,方便修改代码后的运行。
请问下要怎么解决呢……
9 个解决方案
#1
看看eclipse里面设置的JDK内存参数。试着稍微调一调看看呢?
#2
先在eclipse安装目录中将eclipse的启动参数调大一些
然后在eclipse的server栏,找到tomcat选项,打开tomcat的配置
在arguments 标签框下面的VM Arguments 框后面接上自己的tomcat启动虚拟机参数就可以了
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms128m
-Xmx1024m
然后在eclipse的server栏,找到tomcat选项,打开tomcat的配置
在arguments 标签框下面的VM Arguments 框后面接上自己的tomcat启动虚拟机参数就可以了
#3
楼上,赞,是不是myeclipse启动tomcat的时候会覆盖tomcat的启动参数?
#4
谢谢“magi1201”
#5
谢谢大神的内存溢出配置
#6
此方法解决了我的问题,太神奇了
#7
除了以上的原因,还有可能是下面的原因:
程序进入了死循环!比如一个请求调取了一个servlet,结果这个servlet在转发地址的时候又转发到自己的servlet地址,就会出现这种情况
#8
project->clean一下吧。。。我每次都是这样弄的
#9
厉害,必须点个赞
#1
看看eclipse里面设置的JDK内存参数。试着稍微调一调看看呢?
#2
先在eclipse安装目录中将eclipse的启动参数调大一些
然后在eclipse的server栏,找到tomcat选项,打开tomcat的配置
在arguments 标签框下面的VM Arguments 框后面接上自己的tomcat启动虚拟机参数就可以了
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms128m
-Xmx1024m
然后在eclipse的server栏,找到tomcat选项,打开tomcat的配置
在arguments 标签框下面的VM Arguments 框后面接上自己的tomcat启动虚拟机参数就可以了
#3
楼上,赞,是不是myeclipse启动tomcat的时候会覆盖tomcat的启动参数?
#4
谢谢“magi1201”
#5
谢谢大神的内存溢出配置
#6
此方法解决了我的问题,太神奇了
#7
除了以上的原因,还有可能是下面的原因:
程序进入了死循环!比如一个请求调取了一个servlet,结果这个servlet在转发地址的时候又转发到自己的servlet地址,就会出现这种情况
#8
project->clean一下吧。。。我每次都是这样弄的
#9
厉害,必须点个赞