在同一台电脑上同时安装 Tomcat 9 和 Tomcat 11:从下载到配置的完整指南
在 Java Web 开发的日常工作中,我们常常需要同时维护或测试不同版本的项目。由于不同项目可能依赖不同版本的 Tomcat,甚至不同版本的 Java,因此掌握在同一台机器上安装并运行多个 Tomcat 实例的技能变得尤为重要。本文将详细介绍如何在 Windows 系统上同时安装 Tomcat 9 和 Tomcat 11,包括环境变量配置、端口调整、服务注册与启动验证等全流程操作,帮助开发者轻松实现多版本共存。
第一部分:Tomcat 9 的安装与配置
1.1 下载JDK8和Tomcat 9
Apache Tomcat 是一个开源的 Java Servlet 容器,实现了 Jakarta EE(原 Java EE)的部分规范。不同版本的 Tomcat 对应不同的 Java 版本,因此在选择 Tomcat 版本前,请务必确认本地 Java 环境。查看Tomcat与Java的对应关系。

从图中可以看出,Tomcat 9的最新版本支持的Java版本为8+,Tomcat 11支持的Java版本为17+。同一个大版本下的Tomcat小版本支持的JDK版本也可能不一样,因此最好按照上图下载对应的Tomcat和JDK。
- 下载JDK8。访问甲骨文官网,打开JDK8下载页,选择其中一个Windows版本的安装包下载即可。JDK下载免费,但需要注册一个账号。

这里选择下载jdk-8u641-windows-x64.zip。
- 下载Tomcat 9。访问ApacheTomcat官网。在首页选择Tomcat 9。

在下载页面中,点击Core分类下的一个链接进行下载。例如:apache-tomcat-9.0.113-windows-x64.zip。

提示:如果需要下载历史版本,可点击“Archives”进入归档目录,按版本号查找并下载。

1.2 解压JDK8和Tomcat 9
- 将下载好的jdk-8u641-windows-x64.zip和apache-tomcat-9.0.113-windows-x64.zip文件分别解压,如解压到D盘。
- 将解压出来的JDK和Tomcat目录分别改名和jdk8和tomcat9。
- tomcat9目录结构如下:

- bin —— 存放启动/关闭脚本(如 startup.bat、shutdown.bat)
- conf —— 配置文件(如 server.xml、web.xml)
- lib —— 依赖的 JAR 包
- logs —— 日志文件
- temp —— 临时文件
- webapps —— 部署的 Web 应用程序
- work —— JSP 编译后的 class 文件
1.3 配置环境变量
- 在资源管理器中右击【此电脑】,然后点击【属性】

- 依次点击【高级系统设置】->【环境变量】->【新建】按钮,新建系统变量。

- 我们需要配置以下系统环境变量:
| 变量名 | 变量值 | 说明 |
| JAVA_HOME | D:\jdk8 | 指向JDK8的安装根目录 |
| Path | %JAVA_HOME%\bin | 添加 bin 目录到系统路径 |
| CATALINA_BASE | D:\tomcat9 | 指向 Tomcat 安装根目录 |
| CATALINA_HOME | D:\tomcat9 | 同上 |
| Path | %CATALINA_HOME%\bin | 添加 bin 目录到系统路径 |
| Path | %CATALINA_HOME%\lib | 添加 lib 目录到系统路径 |
配置完成后,建议重启命令行窗口以使环境变量生效。
1.4 注册 Tomcat 服务(可选)
如果你希望 Tomcat 以 Windows 服务的形式运行,可以执行以下命令:
d:
cd D:\tomcat9\bin
service.bat install
执行成功后,可以在“服务”管理器中看到名为 “Tomcat9” 的服务。卸载服务可使用 service.bat remove。
1.5 启动与验证 Tomcat 9
启动方式有多种:
• 双击bin目录下的startup.bat
• 运行tomcat9w.exe(图形化管理工具)
• 如果注册了服务,可在服务中启动
启动后,打开浏览器访问 http://localhost:8080,如果看到 Tomcat 默认首页,说明启动成功。
第二部分:Tomcat 11 的安装与配置
Tomcat 11 需要 JDK 17 或更高版本支持。因此在安装 Tomcat 11 之前,请确保已安装 JDK 17。
2.1 下载 JDK 17 与 Tomcat 11
1. 下载JDK17(建议下载zip归档版,避免安装程序带来的环境冲突):
◦ 访问OracleJDK17下载页
◦ 选择Windows平台的zip包,解压至如D:\jdk17

2. 下载Tomcat11:
◦ 访问ApacheTomcat官网
◦ 选择Tomcat11版本,下载Core分类下的zip包

◦ 解压至如D:\tomcat11
2.2 修改 Tomcat 11 的端口
由于 Tomcat 9 默认占用 8080(HTTP)和 8005(SHUTDOWN)端口,为了避免冲突,我们需要修改 Tomcat 11 的端口配置。
打开 D:\Tomcat11\conf\server.xml,修改以下两处:
xml
<!– 将 SHUTDOWN 端口从 8005 改为 8015 –>
<Server port=”8015″ shutdown=”SHUTDOWN”>
<!– 将 HTTP 端口从 8080 改为 8081 –>
<Connector port=”8081″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
保存文件。
2.3 修改 Tomcat 11 的启动脚本环境变量
为了避免与 Tomcat 9 的环境变量冲突,我们需要修改 Tomcat 11 所有 .bat 文件中的环境变量名。例如:
将:
• CATALINA_HOME改为CATALINA11_HOME
• CATALINA_BASE改为CATALINA11_BASE
• JAVA_HOME改为JAVA11_HOME
• JRE_HOME改为JRE11_HOME
• CATALINA_TMPDIR改为CATALINA11_TMPDIR
可以使用文本编辑器的“查找与替换”功能批量修改。
2.4 配置 Tomcat 11 环境变量
在“系统变量”中新增以下变量:
| 变量名 | 变量值 | 说明 |
| JAVA11_HOME | D:\jdk17 | 指向JDK17的安装根目录 |
| Path | %JAVA11_HOME%\bin | 添加 bin 目录到系统路径 |
| CATALINA11_BASE | D:\tomcat11 | 指向 Tomcat 11安装根目录 |
| CATALINA11_HOME | D:\tomcat11 | 同上 |
| Path | %CATALINA11_HOME%\bin | 添加 bin 目录到系统路径 |
| Path | %CATALINA11_HOME%\lib | 添加 lib 目录到系统路径 |
%JAVA11_HOME%\bin确保其位置靠前,以优先使用 JDK 17。
2.5 启动与验证 Tomcat 11
打开命令行,进入 D:\tomcat11\bin,执行:
catalina.bat run
如果看到启动日志且无报错,说明 Tomcat 11 启动成功。此时访问 http://localhost:8081 应能看到 Tomcat 11 的默认页面。
之后可直接双击 startup.bat 启动。
第三部分:常见问题与解决方法
3.1 startup.bat 闪退
可能原因:
1. 端口被占用
2. 环境变量配置错误
3. 文件损坏
解决步骤:
• 使用netstat-ano|findstr”8081″检查端口占用情况
• 结束占用端口的进程
• 检查环境变量是否配置正确
• 重新下载或替换损坏文件
3.2 启动时第二个窗口闪退
通常是因为端口冲突或 JDK 版本识别错误。
解决方法:
• 检查端口配置
• 确认JAVA11_HOME指向正确的JDK17路径
• 在命令行中运行catalina.bat run查看具体错误信息
3.3 JDK 版本不兼容错误
如果出现类似以下错误:
错误: 加载主类 org.apache.catalina.startup.Bootstrap 时出现 LinkageError
java.lang.UnsupportedClassVersionError: … this version of the Java Runtime only recognizes class file versions up to 55.0
说明当前使用的 JDK 版本低于 Tomcat 11 所需版本(应为 JDK 17+)。请检查 JAVA11_HOME 是否指向 JDK 17。
3.4 无法识别 JVM 参数
如果出现:
Unrecognized option: –enable-native-access=ALL-UNNAMED
说明 catalina.bat 中包含了当前 JDK 不支持的参数。可打开该文件,找到该参数并删除或注释掉。
第四部分:同时运行两个 Tomcat 的注意事项
1. 端口必须不同:确保每个Tomcat实例的HTTP、HTTPS、SHUTDOWN端口均不冲突。
2. 环境变量隔离:通过修改变量名(如CATALINA11_HOME)实现环境隔离。
3. JDK版本管理:Tomcat9支持JDK8+,Tomcat11需要JDK17+,建议使用不同环境变量名区分。
4. 服务命名:如果注册为Windows服务,请修改服务显示名称,便于识别。
5. 日志管理:建议为每个实例配置不同的日志输出路径,便于排查问题。
结语
通过上述步骤,我们成功在同一台 Windows 机器上安装并配置了 Tomcat 9 和 Tomcat 11,并实现了两者的同时运行。这种多版本共存的方式非常适合开发、测试与迁移场景。希望这篇详细的教程能帮助你更好地管理多个 Tomcat 环境,提升开发效率。
如果在操作中遇到其他问题,欢迎在评论区留言交流!
版权声明
本文基于实际操作撰写,内容仅供参考,转载请注明出处。
环境说明:Windows 10/11,JDK 8 & JDK 17,Tomcat 9.0.79 & Tomcat 11.0.x