idea搭建tomcat7源码阅读环境
教程
dos命令学习
-
set arg=意思是设置变量arg为空 - %1和shift命令
tomcat启动脚本阅读
请结合Tomcat 7 启动分析(一)启动脚本食用。
我们先展示bin/startup.bat的流程:
之后别的脚本阅读就比较简单了。关键是要
- 理解每个
:xxx标记的含义 - 多读注释。
这个脚本的最终目的还是启动catalina.bat,而且把附带参数start和运行该脚本另外提供的参数。
然后我们阅读catalina.bat,有了上文的经验,读后面的会容易很多。其会根据参数运行对应模式。在startup.bat下,模式为start,最终会运行org.apache.catalina.startup.Bootstrap类。
总结
startup.bat的调用最终会在catalina.bat脚本内执行org.apache.catalina.startup.Bootstrap类的main方法。
代码语言:javascript复制以上即 tomcat 的启动脚本中的总体流程,只是讲了默认的脚本运行方式,但在脚本阅读中可以看到能根据 catalina.bat 里可以根据不同参数以不同方式运行 tomcat :
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找“预流”的文章


