Eclipse中运行Tomcat遇到的内存溢出错误

时间:2021-07-03 15:56:27

使用Eclipse(版本Indigo 3.7)调试Java项目的时候,遇到了下面的错误:

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,而Eclipse中有BUG导致eclipse.ini中的参数无法传递给Tomcat,这样在项目加载内容较多时,很容易造成内存溢出。解决方案为增加JVM的内存空间。

有一点需要注意,因为使用的是Eclipse中集成的Tomcat,因此要在下面的界面中设置。

Eclipse中运行Tomcat遇到的内存溢出错误

Eclipse中运行Tomcat遇到的内存溢出错误

附主要的Eclipse版本代号及版本

版本代号 平台版本 主要版本 发行日期 SR1发行日期 SR2发行日期
Callisto 3.2 2006年6月26日 N/A N/A
Europa 3.3 2007年6月27日 2007年9月28日 2008年2月29日
Ganymede 3.4 2008年6月25日 2008年9月24日 2009年2月25日
Galileo 3.5 2009年6月24日 2009年9月25日 2010年2月26日
Helios 3.6 2010年6月23日 2010年9月24日 2011年2月25日
Indigo 3.7 2011年6月22日 2011年9月23日 2012年2月24日
Juno 3.8及4.2 2012年6月27日 2012年9月28日 2013年3月1日
Kepler 4.3 2013年6月26日 2013年9月27日 2014年2月28日
Luna 4.4 2014年6月25日 N/A N/A
Mars 4.5 2015年 N/A N/A
Neon 4.6 2016年 N/A N/A
Oxygen 4.7 2017年 N/A N/A

参考资料:
1、Eclipse中通过Tomcat运行JavaWeb项目发生内存溢出:java.lang.OutOfMemoryError: PermGen space 错误的解决方案
2、Download Eclipse
3、Java SDK Download