Tomcatの起動処理を解説|startup・catalinaスクリプトの流れ
掲載日:
更新日:
INFORMATION > Tomcatの起動処理を解説|startup・catalinaスクリプトの流れ
結論:Tomcatのstartupスクリプトは環境を整えた後にcatalinaスクリプトを呼び、最終的にJavaのBootstrapクラスを起動します。
この記事の対象と位置付け:Tomcat 9.0.27の配布物を読み、WindowsとLinuxの起動ファイルが何をしているか追跡した記事です。仕組みの理解と障害調査に役立ちます。
2026年時点の注意:スクリプトの具体的な行や既定オプションはTomcatの版で変わります。CATALINA_HOMEとCATALINA_BASE、Java要件を確認し、利用中の配布物そのものを読んでください。
概要
Tomcatが起動する仕組みについて説明したいと思います。普段バッチファイルやシェルファイルからTomcatを起動していると思いますが、実際にバッチファイルやシェルファイルが何をしているのか見ていきたいと思います。確認するTomcatのバージョンは「9.0.27」とします。
バージョン「9.0.27」のTomcatのダウンロード方法については以下でも説明しているので、必要な人は参考にしてみてください。
目次
1. Tomcatが起動する仕組み
結論から言うとTomcatは以下のJavaコマンドにより起動しています。(前提として、Tomcatのバージョン「9.0.27」Javaが「OpenJDK11」とします。)
"C:\Program Files (x86)\Java\jdk-11\bin\java.exe" -Djava.util.logging.config.file="C:\apache-tomcat-9.0.27\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs="" -classpath "C:\apache-tomcat-9.0.27\bin\bootstrap.jar;C:\apache-tomcat-9.0.27\bin\tomcat-juli.jar" -Dcatalina.base="C:\apache-tomcat-9.0.27" -Dcatalina.home="C:\apache-tomcat-9.0.27" -Djava.io.tmpdir="C:\apache-tomcat-9.0.27\temp" org.apache.catalina.startup.Bootstrap start
要は最終的に上記の1行のJavaコマンドを実行して、メインクラス(public static void main(String[] args))を呼び出すことによりTomcatを起動しています。
※「-D~」の部分が何をしているのか分からない人は以下を参考にしてみてください。
最終的には1行のコマンドが実行されているがstartup.batでは何をしているのか確認したいと思います。
1-1. startup.batの中身
startup.batは簡単にTomcatを起動するための環境設定のチェックを行った後に、catalina.batを引数startで実行しています。実際にメインとして処理が記載されているのはcatalina.batとなります。
では、catalina.batで何をしているかと言うと、先ほど記載した最終的に実行するコマンドの組み立てです。具体的には以下を探してコマンドを組み立てています。
- 起動するJavaのディレクトリ
- Javaのクラスパス、メインクラス
- Javaのオプション など
上記を探した結果、最終的に1行のJavaコマンドを実行しています。
2. まとめ
Tomcatはstartup.batなどのバッチファイルから起動しますが、最終的にはTomcatは1行のJavaコマンドにより起動されています。このコマンドによりメインクラス(public static void main(String[] args))が呼ばれ、処理が開始します。
ちなみにTomcatのメインクラスがあるのは「org.apache.catalina.startup.Bootstrap」となります。
最後までご覧いただきありがとうございました。