Tomcat源码启动

157 阅读1分钟

渴望去干点什么,又不知道干点什么,《How Tomcat Works 》走进了我的世界。

书中使用的是tomcat4版本距离比遥远,很多实现已经过时。当前使用的tomcat9来进行探索与学习。

下面是tomcat源码启动主要步骤:

step1.

从github克隆代码

https://github.com/apache/tomcat.git
cd  tomcat
git checkout 9.0.x

step2.

安装ant并设置path

dlcdn.apache.org//ant/binari…

如果当前JDK版本小于17,需要下载JDK17

https://mirrors.huaweicloud.com/openjdk/17.0.2/

将jdk17的java.exe设置到 C:\Program Files\apache-ant-1.10.14\bin\ant.bat

修改第119行。这里需要自己判断JDK17的安装路径

if "%_JAVACMD%" == "" set _JAVACMD=C:\Program Files\Java\jdk-17.0.2\bin\java.exe

step3.

使用ant命令ant ide-intellij 去生成IDE需要的支持文件

cd tomcat
ant ide-intellij

由于需要从网络下载需要的jar文件,耐心等待一段时间

step4.

执行命令

ant deploy

将会在当前项目下的output/build目录下生产执行目标文件

导入项目到ide-intellij

step5.

找到Bootstrap.main()

设置启动参数,参数中的目录需要替换成上面ant deploy生成的目标目录

-Djava.util.logging.config.file=C:\myproject\tomcat\output\build\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=
-Dcatalina.base=C:\myproject\tomcat\output\build\
-Dcatalina.home=C:\myproject\tomcat\output\build\
-Djava.io.tmpdir=C:\myproject\tomcat\output\build\temp

设置启动命令

start

具体如图

image.png