Apache Tomcat 如何启动:startup、Bootstrap 与 Catalina


出版日期:

更新:


技术文章 > Apache Tomcat 如何启动:startup、Bootstrap 与 Catalina

2026 状态和安全使用

结论: startup.shstartup.bat 委托给 catalina,后者在启动 Tomcat 的 Bootstrap 类之前组装环境变量、类路径、JVM 选项和系统属性。服务管理器可以通过不同的包装器调用相同的运行时。

你将学到什么

  • CATALINA_HOMECATALINA_BASEJAVA_HOMEJRE_HOME 如何影响启动。
  • shell 或批处理参数如何成为 Java 命令,然后成为 Catalina 生命周期操作。
  • 在哪里检查最终命令而不复制过时的 JVM 标志。

这适用于哪些人:对启动包装器进行故障排除的操作员和学习 Tomcat 内部结构的开发人员。

2026 位置: 下面的命令跟踪来自 Java 11 上的 Tomcat 9.0.27。使用它来了解流程,然后检查受支持的 Tomcat 版本附带的脚本;内部标志和兼容的 Java 版本发生变化。

安全注意事项:原始文章中的命令和配置示例尚未在当前生产环境中重新运行。应用之前,请在单独的测试环境中验证支持的版本、备份、访问控制和回滚步骤。

官方主要来源

概述。

本文梳理 Tomcat 的启动流程。通常会运行 startup.bat 或 startup.sh;示例基于 Tomcat 9.0.27。

下面还介绍了如何下载Tomcat的 "9.0.27 "版本,如果你需要,请参考一下。

下载Tomcat

目录

  1. Tomcat如何启动。
  2. 摘要

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

实质上,Tomcat最终是通过执行上述单行Java命令和调用main类(public static void main(String[] args))而启动的。

注意:如果你不知道"-D~"部分有什么作用,请参考以下内容。

在Java启动时指定的D选项(-D)是什么?

最终,一行命令被执行,但你想检查startup.bat在做什么。

1-1. startup.bat的内容

startup.bat只是检查环境设置以启动Tomcat,然后带着参数start执行catalina.bat。 实际的主要处理在 catalina.bat 中描述。

因此,在 catalina.bat 中所做的是对要执行的最终命令进行组装,如前面所述。 具体来说,这些命令是通过寻找以下内容进行组合的

  • 要激活的Java目录
  • Java的classpath,主类。
  • Java选项 (减少前一个词的意义或价值)的喜欢

在搜索了上述内容后,最后的结果是一条单行的Java命令。

2. 摘要

Tomcat是由批处理文件(如startup.bat)启动的,但最终Tomcat是由一个单行Java命令启动的。 这个命令调用main类(public static void main(String[] args)),并启动进程。

顺便说一下,Tomcat的主类位于 "org.apache.catalina.startup.Bootstrap "中。

■技术文章

查看全部技术文章。


■作者简介

查看作者简介。


■联系我们

就本文内容联系我们。