近简单的看了一遍how tomcat works这本书,感觉和现在的版本差距太大了,所以随便写点记录下源码的阅读过程,如果有写的不好的地方或者有错误的地方 希望大家能帮忙指正下
大家启动tomcat基本上都是通过调用startup.bat或者是startup.sh
先看基于windows的bat脚本 startup.bat


然后看下catalina.bat,这里可以看到很多注释

参数里面主要有这几个是jvm相关的
JAVA_HOME(jdk根目录),JRE_HOME(jre根目录),JAVA_OPTS(jvm的参数),JPDA_OPTS(jpda java调试相关)
至于jpda有什么用 可以参考这个
http://wuzhaohuixy-qq-com.iteye.com/blog/2106639
还有一部分参数是关于tomcat本身的 譬如读取日志的配置文件位置LOGGING_CONFIG 日志管理的处理类 LOGGING_MANAGER tomcat的TITLE
继续往下一个一个看这些参数是怎么玩的
首先看一下下面

这里调用了setenv.bat ,但是我们在bin目录下并没有找到该文件 通过名字也知道是来设置环境的,
所以通常的做法是里面修改 javahome以及设置是否远程调试等 在里面设置变量和额外的脚本等 在不同的环境下就不用每次都去修改catalina.bat文件(尽量不要修改tomcat自身的脚本) 直接在setenv里面改就行
也不用每个系统都必须在环境变量中配置javahome
接下来看到几行setclasspath的命令

这里会直接调用bin目录下的setclasspath.bat文件 打开setclasspath.bat

里面主要是用来判断 我们配置的(或者环境变量)javahome中的 几个java相关的exe文件是否存在
接下来就是 配置tomcat远程调试 和日志相关的 因为后期重点在于java源码解读 所以这里就不详细说明 有两个比较详细的博客大家可以参考下
这个是解读catalina.bat的
http://supportopensource.iteye.com/blog/1884919
这个是解读startup.bat的
http://supportopensource.iteye.com/blog/1884916
其中重头戏在这里:
启动类 在bootstrap
下一章 从bootstrap类开始慢慢了解整个tomcat源码
浙公网安备 33010602011771号