web-dev-qa-db-ja.com

実行中のTomcatバージョンを調べる方法

私はAppfuse + Tomcat + jRebelを動かそうとしています。

AppfuseはデフォルトでCargoを使ってTomcat(ver。7.0.33)をダウンロードし、それにアプリケーションをデプロイします。ダウンロードしたものではなく、既にインストールされているTomcat(バージョン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を実行しているのか、それとも "project embeded"されているTomcatを実行しているのか知りたいと思いました):)

154
Yichaoz

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
50
wemu

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

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
438
Tech Junkie
  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 ="で定義されているバージョン.

88
grepit

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
45
tokhi

Webブラウザでhttp://localhost:8080/を開くだけで、Tomcatのウェルカムページが開き、次のようなTomcatのバージョンが実行されていることがわかります。

Apache Tomcat/7.0.42
  • 私はあなたのTomcatがポート8080で動いていると仮定します
39

現在実行中の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サーバーの構築:Oct 7 2015 18:25:21 UTCサーバー番号:8.0.28.0 OSの名前:Windows 7 OSのバージョン:6.1アーキテクチャ:AMD64 JVMのバージョン:1.8.0_111-b14 JVMのベンダー:オラクル株式会社

11
Yergalem

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"
9
Nanhe Kumar

リリースノートを使う

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
    
9

以下を実行

/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
6
tcat

Windowsマシン用

bin>version.bat
Using CATALINA_BASE:   "C:\Apache-Tomcat-7.0.53"
Using CATALINA_HOME:   "C:\Apache-Tomcat-7.0.53"
Using CATALINA_TMPDIR: "C:\Apache-Tomcat-7.0.53\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_65"
Using CLASSPATH:       "C:\Apache-Tomcat-7.0.53\bin\bootstrap.jar;C:\Apache-Tomcat-7.0.53\bin\Tomcat-juli.jar"
Server version: Apache Tomcat/7.0.53
Server built:   Jan 01 2014 06:20:16
Server number:  7.0.53.0
OS Name:        Windows 10
OS Version:     10.0
Architecture:   AMD64
JVM Version:    1.8.0_65-b17
JVM Vendor:     Oracle Corporation

Linuxマシンの場合

# ./version.sh
Using CATALINA_BASE:   /usr/epramaan/Apache-Tomcat-7.0.56
Using CATALINA_HOME:   /usr/epramaan/Apache-Tomcat-7.0.56
Using CATALINA_TMPDIR: /usr/epramaan/Apache-Tomcat-7.0.56/temp
Using JRE_HOME:        /usr/Java/jdk1.7.0_71/jre
Using CLASSPATH:       /usr/epramaan/Apache-Tomcat-7.0.56/bin/bootstrap.jar:/usr/epramaan/Apache-Tomcat-7.0.56/bin/Tomcat-juli.jar
Server version: Apache Tomcat/7.0.56
Server built:   Sep 26 2014 12:08:24
Server number:  7.0.56.0
OS Name:        Linux
OS Version:     2.6.32-431.el6.x86_64
Architecture:   AMD64
JVM Version:    1.7.0_71-b14
JVM Vendor:     Oracle Corporation

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

#Sudo /etc/init.d/Tomcat version
6
Mack

もう1つの選択肢は、Tomcatからのリリースノートの表示です。linux/windowに適用可能です。

{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt

私はそれが遅すぎるかもしれないことを知っています、しかしこれは役に立つかもしれません:あなたがJavaコードからApache Tomcat Serverバージョンを知りたいならば、あなたは使用できます:

httpServletから:

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

servletContextListenerから:

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

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

Sudo /etc/init.d/Tomcat version

実際のサービス名と "Tomcat"を入れ替えます。

3

404.jspまたはnon-existent.jspを入力してください。

ページ下部のTomcat/JBossのバージョン番号を取得します。

1
Ivan Chau

Tomcatのホームページを開く(通常localhost:8080

あなたはこのようなものを見るでしょう:

enter image description here

1
Eduardo

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

私はそのような保護されたサーバーを1つ持っていて、RELEASE-NOTESファイルだけがTomcatのバージョンを明らかにしました。他のすべての技術はバージョン情報を明らかにすることに失敗しました。

1
anjanb

LinuxでTomcatバージョンを確認するには

cd /opt/Tomcat/bin

./catalina.sh version
1
Narendra Kumar

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

Java -cp Tomcat/lib/catalina.jar org.Apache.catalina.util.ServerInfo

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

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
1

私たちはWindows環境で動いていて、TomcatバージョンをJava環境の外に出す方法を見つけなければなりませんでした。バージョンがわからないと、ディレクトリを特定できませんでした。私はついに最良の方法がTomcatサービスに問い合わせることであることがわかった:

C:\ temp> scクエリ見つける/私は "Tomcat"
SERVICE_NAME:Tomcat6
DISPLAY_NAME:Apache Tomcat 6.0 Tomcat 6

1
kenbrown_ct

unixサーバーの端末で実行

w3m http://localhost:8080/

qを押して次にyを押す

Tomcatを起動し、catalina.logsで " Server version name "を検索するだけで、あなたのTomcatのバージョンがわかります。例えば:

"Mar 07、2019 11:25:40 AM org.Apache.catalina.startup.VersionLoggerListenerログ情報:サーバのバージョン名:Apache Tomcat / 9.0.16 "

0
Shubh

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.shが原因で、A Tomcat 8がクラスパス上のTomcat 7からのクラスで始まったという状況を経験しました。プロセス内で-Dcatalina.base-Dcatalina.home-classpathなどのコマンドラインオプションが有効であることを確認してください。

0
Abdull

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

Tomcatは、Windows Vista/7以外の場合は[プロセス]に表示されるように実行されているはずです。

0
madlymad

サーバーの情報はステータスページで確認できます。

{running-Tomcat-url}/manager/status

そのページであなたのTomcatが動いているJavaのバージョンを見ることができます

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

0
Carlo Ledesma