1. Tomcat安装概述
Tomcat官网提供了多种类型的安装包供下载使用,针对 Windows 操作系统,主要存在如下几个版本:
- zip
- 32-bit Windows zip
- 64-bit Windows zip
- 32-bit/64-bit Windows Service Installer
简单来看,就是两类:zip压缩包和服务安装版,前三个版本都是.zip
一般首选zip压缩包,免安装,解压就可使用。
在开发阶段,使用bin\startup.bat启动、停止服务器,很方便。
但在生产环境下,每次都停留一个黑色的命令行窗口,且都要手工启停很是麻烦,也容易被不小心关掉。
当然也有好处,可以直接观察运行日志的输出,了解服务运行情况
2. 配置Tomcat为系统服务
为了能够开机自动启动,没有黑窗口,通常会选择将Tomcat配置为系统服务,并设置自动启动。
具体方法有两种:
直接下载安装Windows Service Installer版本
双击安装后,会自动配置为Windows服务,并提供系统运行托盘(在任务栏右下角出现)。使用zip压缩包版本,手工配置为系统服务。
Tomcat在安装目录的bin路径下,提供了service.bat脚本,来帮助我们将Tomcat配置为系统服务。
对于方法1,没有必要说明,主要介绍如何用方式2。
2.1 使用Tomcat自带的service.bat配置系统服务
service.bat 提供了install、remove/uninstall两个可选操作,分别对应"安装服务","移除服务"。
(1) 安装Tomcat服务
Step 1 : 打开cmd,使用cd命令切换到tomcat安装目录/bin路径下。
cd c:\tomcat8.5.43\bin
Step 2 : 在cmd窗口,输入 service install 服务名称
创建为Windows系统服务。
也可以不指定服务名称,会默认服务名称为 Tomcat + 当前的Tomcat主版本号
,如 "Tomcat8"。
c:\tomcat8.5.43\bin>service install tomcat-instance-1
如上,服务名为: tomcat-instance-1
Step3 : 打开Windows的服务管理窗口,编辑服务属性,设置为自动启动。
① 打开服务窗口
在命令行输入
c:\tomcat8.5.43\bin>services.msc
② 查找名为 "Apache Tomcat 8.5 tomcat-instance-1" 的系统服务
service.bat
创建的服务显示名规则为 Apache Tomcat 8.5 + 服务名称
③ 选中服务,右键属性,修改启动类型为"自动"。
(2)移除Tomcat服务
移除相对简单很多,直接在service.bat所在路径下(也就是bin路径下),输入
c:\tomcat8.5.43\bin>service remove tomcat-instance-1
关于运行的说明:
配置为Windows服务后,在其服务属性的常规选项卡中,可以查看到有一项
“可执行文件路径
: c:\tomcat8.5.43\bin\tomcat8.exe //RS//tomcat-instance-1”可以看出,启动服务实际执行的是tomcat8.exe,其中的//RS//参数指定运行名为tomcat-instance-1的服务。
解释一下
- tomcat8.exe 是创建、启动、更新、删除Tomcat服务的服务管理程序,service.bat本质上是对它的调用。
- tomcat8w.exe,是监控、配置Tomcat服务的图形化应用程序
它们的用途和可用参数,具体请参考官方的Doc
2.2 指定Tomcat服务使用非“环境变量”配置的JDK
在一个服务器上可能同时运行着多个Tomcat,不同的Tomcat版本对JDK的版本要求不同。
配置为Windows服务的Tomcat,如果没有做额外配置,会默认使用操作系统的环境变量设置中的JAVA_HOME、JRE_HOME作为JDK路径(默认先搜索JAVA_HOME,没有,再搜索JRE_HOME,再没有,报错)。
有几种方式来配置Tomcat Windows服务使用的JDK
(1) 修改service.bat文件,指定JAVA_HOME为目标JDK路径,再移除/重新安装为系统服务
在service.bat文件开头,加入
set JAVA_HOME=D:\java\jdk1.8.0_191
前面说过,service.bat安装时,默认使用系统环境变量中的JAVA_HOME、JRE_HOME作为JDK路径,这里在其脚本中重新指定目标JDK就可以解决。
但要移除/重新安装走一遍,有那么点不科学。对,就是DRY的感觉!
(2)使用tomat8w.exe修改服务参数
tomcat8w.exe,是监控、配置Tomcat服务的图形化应用程序,可以对Tomcat服务做配置。
① 打开tomcat8w.exe 服务配置窗口
如果是默认服务名,直接双击tomcat8w.exe即可
如果不是,则在cmd中,输入
c:\tomcat8.5.43\bin>tomcat8w \\ES\\tomcat-instance-1
也可以复制tomcat8w.exe,并重命名为要配置的Tomcat服务名w.exe,例如这里的: tomcat-instance-1w.exe,然后双击打开。
② 修改Java路径
打开 Java
选项卡,修改 Java Virtual Machine
值为 目标JDK + "\bin\server\jvm.dll"
如:
D:\java\jdk1.8.0_191\bin\server\jvm.dll
2.3 配置Tomcat服务总结
对配置过程,优化并归纳总结如下:
- 修改service.bat,在第一句代码后,添加
set JAVA_HOME=目标JDK路径
; - 打开cmd窗口,输入
service install 服务名称
; - 复制tomcat8w.exe,重命名为服务名w.exe,再双击打开;
- 在打开的服务配置窗口的“General”选项卡中,设置“Startup Type”为“Automatic”。
3. Tomcat (非Windows服务的)配置建议
额外补充一些Tomcat (非Windows服务)的配置细节:
- startup.bat 调用 catalina.bat start 来启动Tomcat
- catalina.bat 调用 setclasspath.bat 来设置Tomcat运行使用的JDK路径
- setclasspath.bat 用来配置Java,如检测到JAVA_HOME或JRE_HOME为空时,会使用环境变量中的JAVA_HOME或JRE_HOME值。
根据这个过程,可以看出catalina.bat才是核心脚本。
因此对Tomcat做非Windows服务的配置,建议直接修改catalina.bat文件。