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找“预流”的文章