通过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
通过eclipse启动tomcat设置JAVA_OPTS失败的解决方案的更多相关文章
- Eclipse 启动Tomcat 超时报错的解决方案
在用eclipse开发项目 用tomcat发布项目的时候 会提示超时, Server Tomcat v7.0 Server at localhost was unable to start wit ...
- 解决Eclipse启动Tomcat时报Error loading WebappClassLoader错误
最近新建了一个JSF项目(网上查到用Struts,Spring MVC也会如此),配置好以后用Eclipse启动Tomcat报了如下错误:严重: Error loading WebappClassLo ...
- Eclipse启动Tomcat报错,系统缺少本地apr库
Eclipse启动Tomcat报错,系统缺少本地apr库. Tomcat中service.xml中的设置情况. 默认情况是HTTP协议的值:protocol="HTTP/1.1" ...
- eclipse启动tomcat 访问http://localhost:8080 报404错误
eclipse启动tomcat 访问http://localhost:8080 报404错误 Server Locations修改后会变灰,如果需要更改设置,则需要移除与Tomcat服务器关联的项目, ...
- eclipse启动tomcat无法访问
eclipse启动tomcat无法访问 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能 ...
- [转]Eclipse启动Tomcat时45秒超时解决方法
原文地址:http://it.oyksoft.com/post/6577/ Eclipse启动Tomcat时,默认配置的启动超时时长为45秒.假若项目启动超过45秒将会报错.两种解决方法:1.改XML ...
- Springmvc+Hibernate在Eclipse启动Tomcat需要很长时间的解决方法
最近在学习SpringMvc开发,有一个提问困扰了很久,就是在Eclipse启动Tomcat需要很长时间,大概要1分多钟. 启动日志: 九月 08, 2016 8:59:01 下午 org.apach ...
- Eclipse启动Tomcat时45秒超时的解决方法
Eclipse启动Tomcat时,默认配置的启动超时时长为45秒.假若项目需要加载的东西比较多,启动时间会比较久,如果启动超过45秒将会报错.有两种解决途径,方法只有一个,就是修改启动时间. 1. 修 ...
- Eclipse启动tomcat时报错:Multiple Contexts have a path of "/xxx"
今天使用Eclipse启动tomcat部署项目时,遇到一个奇怪的错误: Could not publish server configuration for Tomcat v6.0 Server at ...
随机推荐
- MVC 路由检测组件 Routing Debugger
组件下载地址 haacked.com 1.在mvc项目中引入组件 2.配置route规则 public static void RegisterRoutes(RouteCollection route ...
- Mysql 游标的定义与使用方式
创建游标: 首先在MySql中创建一张数据表: CREATE TABLE IF NOT EXISTS `store` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
- input 单选按钮radio 取消选中
//需要先引入JQ.js <input name="rdo" value="AA" type="radio" tag="0& ...
- DRF-->2序列化组件的使用和接口设计--get,post,put,delete&优化组件
!!!!! !!!!! 记住这个图 !!!!! 上篇博客说道DRF序列化组件的get,只是简单的举一个实例,然而在现实生活中我们前后端进行交互的时候更多的用到了Json数据格式,这也就是说前后端交互的 ...
- Django重新整理2
Auth认证: 1.分配路由和创建视图函数 2.在视图函数中引用Django为我们提供的用户认证组建Auth 3.直接进行判断: def login(request): if request.meth ...
- jemalloc报 Unsupported system page size错误
- Spring boot-(3) Spring Boot特性2
1. 外部配置 Spring Boot支持外部配置,以便可以在不同的环境中使用相同的应用程序代码.可以使用properties文件,YAML文件,环境变量或命令行参数进行外部配置.可以使用@Value ...
- [转]在离线环境中发布.NET Core至Windows Server 2008
本文转自:http://www.cnblogs.com/durow/p/5765145.html 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面 ...
- scrollHieght、offsetHeight、clientHeight、width、height
1.scroll滚动(scrollTop.Left.Height.Width) scroll()当用户滚动指定的元素时,会发生 scroll 滚动事件: scrollWidth.scrollHeigh ...
- oracle 空值排序,排在最前面或者最后面
1,排在最前面用order by name nulls first; eg:select t.name,t.code from table t where t.code!='1' order by n ...