tomcat 启动分析(1)脚本运行

2019-05-25 09:25:10 浏览数 (1)

idea搭建tomcat7源码阅读环境

教程

dos命令学习

  • set arg=意思是设置变量arg为空
  • %1和shift命令

tomcat启动脚本阅读

请结合Tomcat 7 启动分析(一)启动脚本食用

我们先展示bin/startup.bat的流程: 之后别的脚本阅读就比较简单了。关键是要

  1. 理解每个:xxx标记的含义
  2. 多读注释

这个脚本的最终目的还是启动catalina.bat,而且把附带参数start和运行该脚本另外提供的参数。

然后我们阅读catalina.bat,有了上文的经验,读后面的会容易很多。其会根据参数运行对应模式。在startup.bat下,模式为start,最终会运行org.apache.catalina.startup.Bootstrap类。

总结

startup.bat的调用最终会在catalina.bat脚本内执行org.apache.catalina.startup.Bootstrap类的main方法。

以上即 tomcat 的启动脚本中的总体流程,只是讲了默认的脚本运行方式,但在脚本阅读中可以看到能根据 catalina.bat 里可以根据不同参数以不同方式运行 tomcat :

代码语言:javascript复制
debug             Start Catalina in a debugger
debug -security   Debug Catalina with a security manager
jpda start        Start Catalina under JPDA debugger
run               Start Catalina in the current window
run -security     Start in the current window with security manager
start             Start Catalina in a separate window
start -security   Start in a separate window with security manager
stop              Stop Catalina
configtest        Run a basic syntax check on server.xml

其他 bat 文件可以大体浏览一下,会发现转了半天,最终都会执行 catalina.bat 文件,而 catalina.bat 文件里最终会执行 Bootstrap 文件的 main 方法,不同的是调用 main 方法时会各自添加不同的入参而已。 bat 文件用于 windows 操作系统下启动 tomcat,而 sh 文件则用于 unix 环境下的启动,原理是一致的。

后记

剩下的启动分析流程请在https://juejin.im/search?query=tomcat启动分析&type=all找“预流”的文章

0 人点赞