做项目时有个web页面导出excel功能,当导出数据量大约10万条时,后台程序就会报错:java.lang.OutOfMemoryError: Java heap space

查看网上做法说是需要修改tomcat的配置文件

1、在catalina.bat的第一行增加:

Java代码 :set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m 

在catalina.sh的第一行增加:

Java代码 :JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m,


2、Windows

    在catalina.bat最前面加入set_OPTS=-Xms128m -Xmx350m

    如果用startup.bat启动tomcat,OK JAVA设置生效.够成功的分配200M内存.

    但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了

windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.

解决办法:

    修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions

    原值为-Dcatalina.home="C:\ApacheGroup \Tomcat 5.0"-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"-Xrs加入 -Xms300m -Xmx350m

    重起tomcat服务,设置生效

不过我在win10注册表中并没有找到相应配置。


最终解决方案:

配置MyEclipse中启动Tomcat时的jvm内存大小即可。参见下表


MyEclipse配置启动Tomcat时的jvm内存大小



相关文章:

  • 2022-12-23
  • 2022-02-07
  • 2022-02-07
  • 2021-06-20
  • 2022-03-01
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2021-10-16
  • 2022-01-13
  • 2022-12-23
相关资源
相似解决方案