如何找到 Tomcat 伺服器的版本
1. 概述
Apache Tomcat 是一個開源的 Java servlet 容器和 Web 伺服器。它透過在伺服器端執行 Java Web 應用程式來建立動態 Web 內容。
在本教程中,我們將討論如何尋找 Tomcat 伺服器的版本。範例中使用的 Tomcat 伺服器版本為 10.1.52。該伺服器運行在 Debian 12 發行版上。
2. Web介面
我們可以從伺服器執行所在的節點存取伺服器,方法是**在網頁瀏覽器中開啟 URL **http://localhost:8080 :
Apache Tomcat 伺服器預設運行在 8080 連接埠。顯然,伺服器版本為10.1.52 。如果我們嘗試從遠端主機進行檢查,則需要將 URL 中的localhost替換為伺服器的 IP 位址。
網頁標題為Apache Tomcat/10.1.52 。因此,我們也可以使用curl從標題中取得版本號:
$ curl -s http://localhost:8080 | grep title
<title>Apache Tomcat/10.1.52</title
-s選項使curl以靜默模式運行,跳過輸出中的進度條。我們使用grep過濾回應內容,僅列印定義網頁標題的 HTML ` <title>標籤。
3. version.sh腳本
我們可以使用 Tomcat 伺服器bin目錄中version.sh腳本來顯示其版本:
$ cd /opt/tomcat
$ ./bin/version.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/10.1.52
Server built: Jan 23 2026 19:29:07 UTC
Server number: 10.1.52.0
OS Name: Linux
OS Version: 6.1.0-10-amd64
Architecture: amd64
JVM Version: 17.0.18+8-Debian-1deb12u1
JVM Vendor: Debian
在我們的部署環境中,伺服器位於/opt/tomcat目錄下。腳本位於/opt/tomcat/bin目錄下。從輸出結果可以看出,伺服器版本為10.1.52 。我們可以透過使用grep過濾輸出結果,只列印伺服器版本資訊:
$ ./bin/version.sh | grep "Server version"
Server version: Apache Tomcat/10.1.52
即使伺服器沒有運行,我們也可以運行此腳本並獲取版本資訊。
4. catalina.sh腳本
另一種方法是使用bin目錄中的catalina.sh腳本:
$ ./bin/catalina.sh version
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/10.1.52
Server built: Jan 23 2026 19:29:07 UTC
Server number: 10.1.52.0
OS Name: Linux
OS Version: 6.1.0-10-amd64
Architecture: amd64
JVM Version: 17.0.18+8-Debian-1deb12u1
JVM Vendor: Debian
Server built: Jan 23 2026 19:29:07 UTC
Server number: 10.1.52.0
這個腳本用途廣泛。例如,我們可以用它來啟動和停止伺服器。它需要執行多個命令。我們傳遞version命令來顯示伺服器資訊。
此腳本的輸出與version.sh的輸出完全相同。實際上, version.sh在後台呼叫了catalina.sh 。與version.sh一樣,即使伺服器沒有運行,我們也可以運行此腳本並獲取版本資訊。
我們在 Linux 系統上執行了version.sh和catalina.sh腳本,但由於 Apache Tomcat 是跨平台伺服器,這些腳本也適用於其他作業系統。例如,我們可以在 Windows 系統上使用version.bat和catalina.bat腳本。
5. catalina.jar文件
另一種方法是使用java指令來執行lib目錄中的catalina.jar jar 檔案。該 jar 檔案中包含org.apache.catalina.util.ServerInfo類,其中包含伺服器版本資訊。
$ java -cp /opt/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
Server version: Apache Tomcat/10.1.52
Server built: Jan 23 2026 19:29:07 UTC
Server number: 10.1.52.0
OS Name: Linux
OS Version: 6.1.0-10-amd64
Architecture: amd64
JVM Version: 17.0.18+8-Debian-1deb12u1
JVM Vendor: Debian
輸出結果與前幾節的輸出結果類似。即使伺服器沒有運行,我們也可以運行這個 jar 檔案並獲取版本資訊。
6. 日誌文件
每次伺服器啟動時,版本資訊都會列印在日誌檔案的開頭。因此,我們可以從日誌檔案中獲取版本資訊:
$ grep "Starting Servlet engine" ./logs/catalina.out | tail -1
17-Feb-2026 05:19:34.090 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.52]
伺服器的日誌檔案catalina.out位於logs目錄中。我們使用grep在日誌檔案中搜尋“Starting Servlet engine”表達式。此外,由於日誌檔案中可能存在多個相同的表達式,我們使用tail指令(即tail -1 )僅列印了最後一個實例。
如果伺服器至少啟動過一次,則此方法適用。
7. 發行說明
伺服器主目錄中的RELEASE-NOTES檔案包含版本資訊。因此,我們可以使用grep列印版本資訊:
$ grep "Apache Tomcat Version" ./RELEASE-NOTES
Apache Tomcat Version 10.1.52
從輸出結果可以看出,版本為10.1.52 。
8. 透過 Java 應用程式以程式設計方式
也可以從正在執行的 Java 應用程式檢查伺服器版本。我們已經了解如何使用java指令從命令列使用org.apache.catalina.util.ServerInfo類別。我們可以呼叫該類別的靜態getServerInfo()方法來取得版本:
String serverInfo = ServerInfo.getServerInfo();
或者,如果我們使用的是 servlet,我們可以使用ServletContext介面中的getServerInfo()方法來取得 servlet 運行所在的伺服器的名稱和版本:
String serverInfo = getServletContext().getServerInfo();
這種方法不僅適用於 Tomcat 伺服器,也適用於其他 servlet 容器。
9. 結論
本文討論如何尋找 Tomcat 伺服器的版本。
首先,我們學習如何透過伺服器的網頁介面取得伺服器版本。我們也了解到,可以使用命令列中的curl命令來實現此操作的自動化。
接下來,我們討論了使用多個腳本和文件的方法。這些方法包括使用version.sh和catalina.sh腳本、 catalina.jar檔案、伺服器日誌檔案和發行說明。使用這些檔案可能需要 root 權限,具體取決於伺服器安裝目錄的權限設定。
最後,我們學習如何從 Java 應用程式和 servlet 中取得伺服器版本。