必须以管理员身份运行service.bat install,否则因权限不足导致“Access is denied”或静默失败;需确保CATALINA_HOME和PATH正确配置,且使用带-windows-x64.zip后缀的Tomcat发行版。

service.bat install 必须以管理员身份运行
直接双击或普通 CMD 运行 service.bat install 会失败,常见报错是“Access is denied”或静默无响应。Windows 服务注册需要 SYSTEM 权限,普通用户权限无法写入服务数据库。
实操建议:
- 右键「命令提示符」→ 选择「以管理员身份运行」
- 用
cd /d %CATALINA_HOME%\bin切到 Tomcat 的bin目录(别拖拽执行,路径空格易出错) - 执行
service.bat install Tomcat9(服务名可自定义,但避免含空格或特殊字符) - 若提示
The service 'Tomcat9' has been installed!,说明注册成功;若提示Usage: service.bat install...,说明当前 CMD 没进对目录或没权限
CATALINA_HOME 和 PATH 缺一不可
service.bat 依赖两个环境变量:启动时靠 CATALINA_HOME 定位配置和 lib,运行时靠 PATH 中的 %CATALINA_HOME%\bin 找到 tomcat9w.exe 等配套工具。漏配任一,服务可能启动失败或日志中报 Cannot find CATALINA_HOME。
检查方法:
- 在管理员 CMD 中运行
echo %CATALINA_HOME%,应输出完整路径(如C:\apache-tomcat-9.0.82) - 运行
where tomcat9w.exe,应返回一个路径;若提示“INFO: Could not find files”,说明PATH没生效 -
CATALINA_BASE非必需,除非你用同一份 bin 目录管理多个实例
服务启动失败时先看 Windows 事件查看器
服务显示“正在启动”后立刻停止,或状态为“已停止”,不是配置问题就是 JVM 启动异常。Windows 不会在服务界面显示 Java 错误,得查系统日志。
定位步骤:
- 按
Win + R→ 输入eventvwr.msc→ 展开「Windows 日志」→「应用程序」 - 筛选来源为
Tomcat9或Apache Commons Daemon - 典型错误包括:
Failed to start Java Virtual Machine(JDK 路径不对)、Invalid -Djava.endorsed.dirs(Tomcat 9+ 已弃用该参数,需删掉service.bat中相关行)、Address already in use(端口冲突)
免安装版(binary ZIP)默认没有 service.bat
从 Apache 官网下载的 apache-tomcat-*.tar.gz 或 apache-tomcat-*.zip(非 -windows-x64.zip)不带 service.bat。它只是解压即用包,不是 Windows 服务安装包。
补救方式只有两种:
- 重下带
-windows-x64.zip后缀的发行版(例如apache-tomcat-9.0.82-windows-x64.zip),解压后bin目录里就有service.bat - 不换包,改用开机启动文件夹方案:把
startup.bat改成带set CATALINA_HOME=...的完整脚本,丢进shell:startup目录 —— 但这不是服务,会弹黑窗,且用户未登录时不启动

















