在 Windows 7/10/11 系統上,使用 service.bat install 將 Tomcat 安裝為 Windows 服務後,服務創建成功但啟動失敗,系統日誌報錯:
而直接運行 startup.bat 卻完全正常。
Windows Vista 之後引入 UAC(用戶賬戶控制),即使管理員賬戶運行命令行,默認也是標準權限令牌。Tomcat 服務安裝涉及:
HKLM\SYSTEM\CurrentControlSet\Services無管理員權限時,服務雖能創建,但運行時無法訪問必要資源導致啟動失敗。
cd /d D:\apache-tomcat-9.0\bin
service.bat remove Tomcat9
cd /d D:\apache-tomcat-9.0\bin
service.bat install Tomcat9
成功提示:The service 'Tomcat9' has been installed.
net start Tomcat9
# 或
sc start Tomcat9
服務模式下 Tomcat 依賴系統環境變量,請確認:
| 變量名 | 示例值 | 說明 |
|---|---|---|
| JAVA_HOME | D:\Java\jdk1.8.0_202 | JDK 安裝根目錄(非 JRE) |
| CATALINA_HOME | D:\apache-tomcat-9.0 | Tomcat 安裝目錄 |
| CATALINA_BASE | D:\apache-tomcat-9.0 | 通常同 CATALINA_HOME |
| PATH | %JAVA_HOME%\bin;%CATALINA_HOME%\bin;... | 包含 Java 與 Tomcat bin 目錄 |
注意: 服務啟動時讀取的是系統環境變量,而非用戶環境變量,請在「系統變量」區編輯。
開發環境建議配置管理用戶,編輯 conf/tomcat-users.xml:
<tomcat-users xmlns="https://tomcat.apache.org/xml"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="StrongPass123!" roles="manager-gui,admin-gui"/>
</tomcat-users>
重啟服務後訪問:https://localhost:8080/manager/html
若仍失敗,檢查以下日誌:
logs/commons-daemon.YYYY-MM-DD.log — Procrun 服務包裝器日誌logs/catalina.YYYY-MM-DD.log — Tomcat 核心日誌| 錯誤碼 | 含義 | 對策 |
|---|---|---|
| Error 1067 | 進程意外終止 | 檢查 JAVA_HOME、JVM 參數、端口占用 |
| Error 5 | 拒絕訪問 | 以管理員運行、檢查目錄權限 |
| Error 2 | 系統找不到指定文件 | 檢查 service.bat 中的可執行文件路徑 |
bin/Tomcat9w.exe 圖形工具中配置堆內存、GC 策略conf/logging.properties 按日期/大小分割Tomcat 作為 Windows 服務啟動失敗 90% 由權限不足引起。核心解決路徑:卸載服務 → 管理員 CMD → 重新安裝 → 驗證環境變量 → 配置管理用戶。掌握服務日誌分析與 JVM 參數調優,可進一步保障生產環境穩定運行。