実行中のTomcatバージョンを確認する方法


175

Appfuse + tomcat + jRebelを動作させようとしています。

AppfuseはデフォルトでCargoを使用してTomcat(バージョン7.0.33)をダウンロードし、それにアプリケーションをデプロイします。ダウンロードしたものではなく、すでにインストールされているTomcat(ver。7.0.27)を使いたいのですが。appfuse FAQに従って変更を行いました。

でデプロイした後mvn cargo:run、実際に実行されているTomcatが実際に7.0.27であることをどのようにして知ることができますか?

以前は間違ったURL(例:localhost:8080 / dfsfsdf)を入力してエラーページに表示していましたが、現在は何も表示されていません。

$CATALINA_HOME自身のtomcat 7.0.27を指摘します。申し訳ありませんが、Windows用です

更新:

この質問がどういうわけか人気になったので、なぜそれが受け入れられた答えを説明したいと思います。簡単です、それは私の問題を解決した最初のものでした。

質問のタイトルを見ると、 @ Tech Junkie@CPU 100が本当に良い答えですが、私が遭遇したシナリオには当てはまりません。(mvn cargo:runインストールしたTomcatを実行しているか、「プロジェクトが埋め込まれた」Tomcatを実行しているかを知りたいと思っていました) :)


1
JSPファイルをアップロードできる場合は、次の例のようにいくつかの情報を印刷できます。bestdesigns.co.in
blog

正しい!あなたは答えを得ました、それは確かに私が欲しい7.0.27です。回答として投稿してください
Yichaoz、2013

回答:


52

JSPファイルをアップロードできる場合は、次の例のようにいくつかの情報を印刷できます。bestdesigns.co.in / blog / check-jsp-tomcat-version

このコードをtomcat_version.jspというファイルに保存します。

    Tomcat Version : <%= application.getServerInfo() %><br>    
    Servlet Specification Version : 
<%= application.getMajorVersion() %>.<%= application.getMinorVersion() %> <br>    
    JSP version :
<%=JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>

http://example.com/tomcat_version.jspにアクセスすると、出力は次のようになります。

Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0

517

これは最近のものではありませんが、私の答えはまだ他の人を助けることができると思いました:

cd tomcat/lib 
java -cp catalina.jar org.apache.catalina.util.ServerInfo

以上です。

Server version: Apache Tomcat/7.0.30
Server built:   May 23 2013 02:54:10
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     3.13.0-36-generic
Architecture:   amd64
JVM Version:    1.7.0_65-b32
JVM Vendor:     Oracle Corporation

11
少し具体的に言えば、server / libは、たとえば次のようになります/opt/tomcat/lib
Kai Carver

4
またはたとえばWindowsの場合C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
Kai Carver

10
私のCentOS 7では、/ usr / share / tomcat / libに移動する必要があります。
Matthieu 2017

1つのSolaris 10サーバーで、コマンドを実行すると、「スレッド "メイン" java.lang.UnsupportedClassVersionError:Bad version number in .class fileに例外があります」というエラーが表示されます。RHEL 7.2では、正しい出力が得られました。
sv。

5
これは正解としてタグ付けする必要があります。Tomcatのバージョンを判別するためにJSPを作成してデプロイする必要がある理由はわかりません。この答えは、システム管理者がTomcatの正確なバージョンを知りたいだけの場合など、プログラマーだけでなく幅広い聴衆を対象にすることができます。
Itherael 2017年

99
  1. Tomcat_home / binディレクトリを解析または実行して、オペレーティングシステムに応じてversion.shまたはversion.batという名前のスクリプトを探します。
  2. スクリプトを実行する./version.shか、version.bat

version.batまたはversion.shがない場合は、ツールを使用してJARファイル(\ tomcat \ server \ lib \ catalina.jar)を解凍し、org \ apache \ catalina \ util \ lib \ ServerInfo.propertiesファイルを調べます。「server.info =」で定義されたバージョン。


申し訳ありませんが、私はWindowsを使用しています。しかし問題は、どのフォルダーのtomcatが実行されているのか実際にはわからないということです
Yichaoz

@Kossel私はあなたのバージョンをチェックするためにより多くの情報を追加しましたが、それはよりマニュアルです。
grepit

1
org \ apache \ catalina \ util \ ServerInfo.propertiesにバージョンが見つかりました(libパッケージはありませんでした)
Federico Pugnali 2013

49

tomcat/binディレクトリでスクリプトを実行します。

sh tomcat/bin/version.sh

Server version: Apache Tomcat/7.0.42
Server built:   Jul 2 2013 08:57:41
Server number:  7.0.42.0
OS Name:        Linux
OS Version:     2.6.32-042stab084.26
Architecture:   amd64
JVM Version:    1.7.0_21-b11
JVM Vendor:     Oracle Corporation

40

http://localhost:8080/Webブラウザで開くだけで、Tomcatのウェルカムページが開き、次のような実行中のTomcatバージョンが表示されます。

Apache Tomcat/7.0.42
  • Tomcatがポート8080で実行されていると思います

12

リリースノートの使用

メインのTomcatフォルダーには、次の行を含むRELEASE-NOTESファイルがあります(〜20-21行目)。

                Apache Tomcat Version 8.0.22
                        Release Notes

または、コマンドラインを使用して同じ情報を取得できます。

  • type RELEASE-NOTES | find "Apache Tomcat Version"

    出力:

                 Apache Tomcat Version 8.0.22
  • Linux

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    出力:

                 Apache Tomcat Version 8.0.22

12

現在実行中のTomcatのバージョン

環境変数-%CATALINA_HOME%を設定すると、Windowsは次のようになります。

>> cd %CATALINA_HOME%\bin
>> version

または、

java.exe -cp lib\catalina.jar org.apache.catalina.util.ServerInfo

私の設定---あなたの設定が次のようになることを願っています

%CATALINA_HOME% --- C:\Program Files\Tomcat\apache-tomcat-8.0.28

出力

サーバーのバージョン:Apache Tomcat / 8.0.28サーバーの構築:2015年10月7日18:25:21 UTCサーバー番号:8.0.28.0 OS名:Windows 7 OSバージョン:6.1アーキテクチャ:amd64 JVMバージョン:1.8.0_111-b14 JVMベンダー:オラクル株式会社


12
For windows machine 
Go to the tomcat directory C:\apache-tomcat-x.0.xx\bin
    bin>version.bat
    Using CATALINA_BASE:   "C:\apache-tomcat-x.0.xx"
    Using CATALINA_HOME:   "C:\apache-tomcat-x.0.xx"
    Using CATALINA_TMPDIR: "C:\apache-tomcat-x.0.xx\temp"
    Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_65"
    Using CLASSPATH:       "C:\apache-tomcat-x.0.xx\bin\bootstrap.jar;C:\apache-tomcat-x.0.xx\bin\tomcat-juli.jar"
    Server version: Apache Tomcat/7.0.53





For Linux Machine 
Go to the tomcat directory /usr/mack/apache-tomcat-x.0.xx/bin
    # ./version.sh
    Using CATALINA_BASE:   /usr/mack/apache-tomcat-x.0.xx
    Using CATALINA_HOME:   /usr/mack/apache-tomcat-x.0.xx
    Using CATALINA_TMPDIR: /usr/mack/apache-tomcat-x.0.xx/temp
    Using JRE_HOME:        /usr/java/jdk1.7.0_71/jre
    Using CLASSPATH:       /usr/mack/apache-tomcat-x.0.xx/bin/bootstrap.jar:/usr/mack/apache-tomcat-x.0.xx/bin/tomcat-juli.jar
    Server version: Apache Tomcat/7.0.56

Tomcatがサービスとしてインストールされている場合:

#sudo /etc/init.d/tomcat version

* nixはこちら。リリースノートファイルがありませんでした。sudoコマンドを実行するとうまく
いき

10

Tomcatのバージョンを確認するには、このファイル(* nixの場合はversion.sh、Windowsの場合はversion.bat)を見つけます。このversion.shファイルは通常、Tomcat binフォルダーにあります。

phpmongodb@kumar:/usr/share/tomcat7/bin$ ./version.sh 

注意

version.shファイルの場所がわからない場合は、次のコマンドを試してください。

sudo find / -name "version.sh"

Tomcat7のすべてをご覧ください。

sudo find / -name "tomcat7"

8

ほとんどすべてをチェックできるこの1つのコマンド:

java -cp tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo

または

tomcat/bin/catalina.sh version

そして、出力は次のようになります

Server version: Apache Tomcat/8.5.24
Server built:   Nov 27 2017 13:05:30 UTC
Server number:  8.5.24.0
OS Name:        Linux
OS Version:     4.4.0-137-generic
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation

7

以下を実行します

/usr/local/tomcat/bin/catalina.sh version

その応答は次のようになります。

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /var/tmp/
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /var/catalina.pid
Server version: Apache Tomcat/7.0.30
Server built:   Sep 27 2012 05:13:37
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     2.6.32-504.3.3.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_60-b19
JVM Vendor:     Oracle Corporation


5

これには遅すぎるかもしれませんが、これは便利かもしれません。JavaコードからApache Tomcatサーバーのバージョンを知りたい場合は、以下を使用できます。

HttpServletから:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    getServletContext().getServerInfo()
}

ServletContextListenerから:

public void contextInitialized(ServletContextEvent event)  { 
    event.getServletContext().getServerInfo();      
}

4

Tomcatがサービスとしてインストールされている場合は、以下を試してください。

sudo /etc/init.d/tomcat version

「tomcat」をサービスの実際の名前に置き換えます。



2

Tomcatホームページを開きます(通常localhost:8080

次のようなものが表示されます。

ここに画像の説明を入力してください




1

Tomcatをハッカーから保護するために、tomcatのバージョン情報を隠すためにいくつかの手順を試すことをお勧めします。OWASPプロジェクトはいくつかのステップを提案しています。https://www.owasp.org/index.php/Securing_tomcat。Tomcatインストールがこのように保護されている場合、上記の回答のうち1つだけがTomcatのバージョンを表示します。
つまり、バージョン番号が明確に通知されている$ TOMCAT_HOME \ RELEASE-NOTESファイルを確認します。

そのような保護されたサーバーが1つあり、RELEASE-NOTESファイルだけがTomcatのバージョンを明らかにしました。他のすべての手法では、バージョン情報を明らかにできませんでした。


1

私たちはWindows環境で実行しており、Java環境の外でTomcatバージョンを取得する方法を見つける必要がありました。バージョンを知らなければ、ディレクトリを特定できませんでした。最終的に、次の方法でTomcatサービスにクエリを実行するのが最善の方法であることがわかりました。

C:\ temp> scクエリ| / I "tomcat"を検索
SERVICE_NAME:Tomcat6
DISPLAY_NAME:Apache Tomcat 6.0 Tomcat6


0

Windowsタスクマネージャー>プロセス> Tomcatを検索>右クリック>ファイルの場所を開く> Tomcat7w.exeを実行すると、説明に表示されます。

Tomcatはプロセスで表示されるように実行する必要があります。WindowsVista / 7では表示されない場合は、タスクマネージャーの[タブ(サービス)]に移動し、Tomcatが起動してプロセスを見つけます。


タスクマネージャーに行ったところ、表示されている唯一のプロセスは、tomcat7w.exeではなくjava.exeです。java.exeを終了するとサーバーが
停止

0

Unixライクな環境では、実際に実行中のプロセスコマンドラインを確認することもお勧めします。

$ ps aux | grep java

...
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.util.logging.config.file=/srv/tomcat-instances/bla/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx4096M -XX:+UseConcMarkSweepGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Xmx4096m -Xms4096m -XX:MaxPermSize=2048m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8090 -Dcom.sun.management.jmxremote.rmi.port=8090 -Djava.rmi.server.hostname=localhost -Djava.endorsed.dirs=/opt/apache-tomcat-8.0.47/endorsed -classpath /opt/apache-tomcat-8.0.47/bin/bootstrap.jar:/opt/apache-tomcat-8.0.47/bin/tomcat-juli.jar -Dcatalina.base=/srv/tomcat-instances/bla -Dcatalina.home=/opt/apache-tomcat-8.0.47 -Djava.io.tmpdir=/tmp/tomcat8-bla-tmp org.apache.catalina.startup.Bootstrap start
...

(オペレーティングシステム)環境変数と(Java)システムプロパティが予期しない値に設定されているため、微妙な奇妙な動作で実行できます。古いTomcatが原因で、setenv.shTomcat 8がクラスパス上のTomcat 7のクラスで開始された状況がありました。ていることを確認しているようなプロセスのコマンドラインオプションでは-Dcatalina.base-Dcatalina.home-classpathメイク感覚。


0

単にTomcatを起動して「サーバーバージョン名」を検索するcatalina.logsと、Tomcatのバージョンが表示されます。例えば:

"2019年3月7日11:25:40 org.apache.catalina.startup.VersionLoggerListenerログ情報:サーバーバージョン名:Apache Tomcat / 9.0.16 "


0

ステータスページからサーバー情報を確認できます。

{running-tomcat-url}/manager/status

そのページでは、Tomcatが実行されているJavaのバージョンを確認できます

注:この回答をTomcat6とJRE7の互換性の問題にも貼り付けました。サポートされていないmajor.minorバージョン51.0


これは、マネージャがインストールされているときだけではないですか?私はデフォルトがそうであることを知っていますが、そうではありません
DannyK 2017年

0

Tomcatの正確なバージョンを確認するには、次のWebサイトにアクセスしてください vi tomcat/BUILDING.txt

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.