近段时间在做项目要用到tomcat时,都是在IDE里面启动tomcat加载项目,昨天遇到问题要将一个不在workspace下的项目放到tomcat中执行,发现之前对tomcat的配置这方面的了解还是很薄弱,现将新学到的几点小结一下:
1.如何启动
tomcat的启动脚本在tomcat的bin目录下,启动脚本start有两个,分别时startup.bat和startup.sh两个,在windows环境下使用startup.bat启动tomcat,在linux下使用startup.sh启动tomcat,同理关闭的脚本也有两个shutdown.bat和shutdown.sh两个,分别是在windows下关闭tomcat和linux下关闭tomcat使用。总结如下:
startup.bat windows下启动
shutdown.bat windows下关闭
startup.sh linux下启动
shutdown.sh linux下关闭
另外还有一个tomcat.exe,这个是在windows下的可执行程序,需要在服务器上安装对应的服务后可以通过tomcat.exe启动tomcat。
2.启动需要的配置项
经常会碰到执行startup.bat启动tomcat时tomcat命令行一闪而过,这说明tomcat启动失败了,tomcat是基于java的服务,其启动需要依赖于java环境,所以在启动的时候需要读取系统的java配置,如果读取不到,就会启动失败,
给tomcat添加启动配置有两种方式:任意选择一种进行配置就好
1)在配置文件中直接指定
其java的配置文件在catalina.bat和startup.bat文件中(linux下对应的配置文件为catalina.sh和startup.sh),在catalina.bat和
startup.bat文件中都可以进行配置的设置,不过一般采用catalina.bat作为配置项,startup.bat作为启动项,将tomcat启动所依赖的配置写在catalina.bat配置文件中,在catalina.bat或者startup.sh文件的setlocal下添加如下的配置项:
SET JAVA_HOME=D:\Program Files\Java\jdk1.7.0_51
SET TOMCAT_HOME=D:\code\server\apache-tomcat-7.0.65(高版本的tomcat不需要配置tomcat主目录)
上面是我的电脑上面的java和tomcat的安装目录,实际配置时以java和tomcat的时间安装地址为准。
2)除了上面的配置方式,还有一种方式就是直接将配置写入系统的环境变量,在windows下就是打开电脑->属性->高级系统属性->环境变量,分为两栏,用户变量和系统变量,用户变量只对当前用户有效,系统变量对电脑上的所有用户有效,在系统变量栏加入环境变量设置:
JAVA_HOME=D:\Program Files\Java\jdk1.7.0_51
path中加入:%JAVA_HOME%\bin
这样tomcat启动的时候也能读取到java环境的配置项。
以上两种方式任意选择一种进行配置就好,这两种配置方式的效果是一样的,都是让tomcat启动时能够读取到系统的java环境的配置。
3)其他的配置项
在启动tomcat的时候,当tomcat下放置的项目较多,或者放置的项目较大,需要加载的东西也很多时,会出现内存不足的情况,这时需要加大tomcat的运行java环境内存,可以在配置文件catalina.bat(startup.bat)中添加配置项:
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=512m
将tomcat的运行java内存增大,解决内存不够的问题。
3.配置好启动的配置项,再用startup.bat启动tomcat就可以正常启动了,还有一个问题置有疑问,就是在IDE里面和在tomcat安装目录下启动tomcat之间的区别。一个问题就是:
假设一个项目A已经放置在tomcat的webapps目录下面,同时在IDE里面有一个项目B,IDE配置的tomcat就是本地的tomcat,
当在IDE里面启动tomcat时,外部的项目A是否也会被加载到tomcat容器中,A项目是否可以访问。
参考的文章:
http://www.jb51.net/article/53879.htm
https://blog.csdn.net/abc19900828/article/details/39478421