tomcat的启动流程
程序员文章站
2024-02-28 23:46:04
...
在上一篇中,我们是自己配置启动的路径。通过手动启动。
那么,再实际的操作中,我们通常用的都是core版本来使用的,里面是没有上篇我们配置的那个路径的,那么是如何启动的呢。
1,通过bin路径startup.bat(linux环境下是startup.sh)的文件来启动的。
2,查看startup.bat
setlocal
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
:end
- 这段代码其实总结就一句话就是通过startup.bat启动catalina.bat
3,启动catalina.bat
这里代码比较多
截取一部分比较便于理解的部分
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
rem Execute Java with the applicable properties
%_EXECJAVA% %LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
简单理解上面的逻辑,
- 设置一个变量MAINCLASS=Bootstrap,
- 然后设置ACTION=start
- 在文件的结尾,执行Bootstrap
(也就是Bootstrap.main())
4,执行Bootstrap的main()方法。
(由此tomcat就开始正式的执行了)
Bootstrap的main方法执行什么功能,之后在详细分析
这里要是有读者感觉到对一些细节还是不清楚可以多了解
扩展文章:
详细版的tomcat启动流程:https://www.cnblogs.com/tanshaoshenghao/p/10932306.html
关于java中main方法
https://segmentfault.com/a/1190000039013829
上一篇: 104.二叉树的最大深度。2星
下一篇: 迷宫的最短路径