通过eclipse启动tomcat设置JAVA_OPTS失败的解决方案

clipse中配置tomcat方法:

Window-->Preference-->Server-->Runtime Environment-->add-->Apache -->Apache TomcatV6.0...设置JRE,完成。

Servers view 中右键New-->Server,选择Apache-->Tomcat V6.0 Server,完成!

通过eclipse中配置的tomcat6,发布项目,启动时报内存溢出,需要重新设置tomcat的JVM参数。

常用的设置方法为:

修改%tomcat_home%/bin下catalina.bat(windows环境下)文件,在

echo Using CATALINA_BASE:   "%CATALINA_BASE%"

上面新增

set JAVA_OPTS=%JAVA_OPTS% -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=512M -Droot.log.level=INFO -Dspring.log.level=WARN -Dsql.log.level=INFO -Dproject.log.level=INFO -Dmas.log.basedir=D:/opt/logs/mas/mas_log

解释:

set JAVA_OPTS=%JAVA_OPTS% ...   ---- JAVA_OPTS 追加参数
-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=512M  -- VM参数设置
-Droot.log.level=INFO -Dspring.log.level=WARN -Dsql.log.level=INFO -Dproject.log.level=INFO -- log日志设置
-Dmas.log.basedir=D:/opt/logs/mas/mas_log   -- 定义全局变量 mas.log.basedir = D:/opt/logs/mas/mas_log
该地方是为logback中定义日志存放地址
<fileNamePattern>${mas.log.basedir}/mas_batch.log.%d{yyyy-MM-dd}</fileNamePattern>

但是,配置好好如上参数后,启动后仍然报内存溢出错误,通过Jconsole观察,修改的参数没有生效。

分析:

1. tomcat默认通过执行%tomcat_home%/bin/startup.bat完成tomcat启动

2. 修改了tomcat的catalina.bat中JAVA_OPTS参数,没有生效,说明通过eclipse启动tomcat并未调用%tomcat_home%/bin/startup.bat

3. eclipse中,选择菜单栏Run -> Run Configurations -> Apache Tomcat -> Tomcat V6.0 Server...

   选择Arguments标签页,会发现program arguments中参数为:start,说明eclipse是调用tomcat的main方法并传递start参数启动tomcat的;

   而Arguments标签页下面的VM arguments参数,启动tomcat使用的是eclipse中我们自定的JRE

因此,需要修改eclipse中JRE的VM参数

windows->preference->java->instal jres->edit,增加如上的参数即可。

参考:

http://wallimn.iteye.com/blog/693158



原文地址:https://www.cnblogs.com/huahua035/p/4807491.html