linux tomcat版本检察

[复制链接]
发表于 2026-10-3 16:29:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、先给结论:三种查 Tomcat 版本的方法

装好了 Tomcat 但不知道是几版本,这种情况在运维里很常见——可能是前人装的、可能是镜像里带的、也可能改过目录名。可用的办法有三条:./version.sh、./catalina.sh version、以及直接解 catalina.jar 看 MANIFEST.MF。

三条路的区别在于:前两条要能执行脚本(依赖 bin 目录完整、有执行权限),第三条只依赖 lib/catalina.jar 这个文件还在。目录被减配、脚本没执行权限、或者只能读不能写的时候,第三条是唯一还活的兜底。下面按从快到慢的顺序讲。

二、方法一:执行 version.sh 脚本

1. 打开终端

用快捷键(通常是 Ctrl+Alt+T),或从应用菜单里打开终端。

2. 定位到 Tomcat 的 bin 目录

把路径切到 Tomcat 安装目录下的 bin:<Tomcat主目录> 换成你的实际路径,例如 /usr/local/tomcat。

cd /usr/local/tomcat/bin

3. 执行版本查询脚本

./version.sh

脚本跑完,终端会打印 Tomcat 的版本信息,包含版本号、构建日期、JVM 版本。这台机器上装的是 JDK 还是 JRE、是不是归档版本,这一段一起就看清了。

Server version: Apache Tomcat/9.0.71
Server built:   Jul 13 2023 11:32:16 UTC
Server number:  9.0.71.0
OS Name:        Linux
OS Version:     5.4.0-91-generic
Architectures:  amd64
Java Version:   1.8.0_362

三、方法二:catalina.sh 传 version 参数

如果你已经按方法一进到 bin 目录,直接往下走;没有的话先重复方法一的前两步。

执行 catalina.sh 并把 version 作为参数传进去:

./catalina.sh version

终端会输出 Tomcat 的版本信息。这个方法和 version.sh 底层用的是同一套启动类,只是入口换了个名字,输出基本一致。区别是 catalina.sh 是 Tomcat 的主脚本,很多管理动作(start/stop/run)都走它,记住这条命令顺带就把脚本用法一起记了。

四、方法三:直接看 catalina.jar 里的 MANIFEST.MF

这是最不依赖执行权限、也最不容易被误改的一条路。

1. 切到 Tomcat 的 lib 目录

cd /usr/local/tomcat/lib

2. 解出 catalina.jar 包内的 MANIFEST.MF

用一条命令同时做「解压指定条目」和「过滤版本字段」两步:

unzip -q -c catalina.jar META-INF/MANIFEST.MF | grep -E 'Specification-Version:|Implementation-Version:'

命令跑完,终端会打印 Specification-Version:(规范版本)和 Implementation-Version:(实现版本)两行。它的含义是:前者对应 Tomcat 遵循的 Servlet 规范版本,后者是这台机器上真实构建的实现版本——两者可能不同号(比如规范 9.0、实现 9.0.71),看实现版本才准。

如果这台机器没装 unzip,用 jar xf 也能达到同样目的,思路是把 jar 当 zip 解。

五、三条路的适用边界

方法依赖优点什么时候用它
./version.shbin 目录完整 + 执行权限一条命令给全(版本/构建日期/JVM/系统)常规排查,首选
./catalina.sh version同上复用主脚本,顺带熟悉 start/stop已经在用 catalina.sh 管理
解 catalina.jar只要 lib/catalina.jar 存在只读、不需要执行权限无执行权限、只读挂载、脚本缺失

六、踩权限坑时的处理

permission 不够、执行脚本报 Permission denied,两种处理:给执行位

chmod +x version.sh catalina.sh

或者干脆绕开脚本,直接用第三条路解 jar 看清单文件,一步都不需要执行权限——这也是线上只读排查时最稳的做法。

另外提一句:Tomcat 的 bin 里同时存在 startup.sh 和 shutdown.sh 时,版本查询不要误用成启动脚本。 startup.sh 跑起来是起服务,不是打印版本号,误操作在公共环境里是个真实的隐患。

七、一句话记法

  • 能跑脚本 → ./version.sh,一条命令看全;
  • 顺手管理 → ./catalina.sh version;
  • 没权限、只读、脚本丢了 → unzip -q -c catalina.jar META-INF/MANIFEST.MF 抓 Implementation-Version。

这三条覆盖了 99% 的「Tomcat 到底是几」的场景,记住 实现版本看 Implementation-Version 这一条,基本不会查错。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:示例基于 Apache Tomcat 9.x 与常见 Linux 发行版的 Shell 环境,适用于部署验收、版本核对与故障定位场景。)

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表