startup.bat(1)

一、阅读说明

1 术语说明

1.1 下述内容使用“服务器”均代表Tomcat 7.0.75Web服务器。

1.2 下述内容使用%SERVER_PATH%表示服务器根目录

二、startup.bat文件源码

1 startup.bat文件位置

startup.bat文件位置:%SERVER_PATH%instartup.bat

2 源码内容

(以下内容经处理,去除不必要的信息)

 1 @echo off
 2 
 3 rem ---------------------------------------------------------------------------
 4 rem Start script for the CATALINA Server
 5 rem ---------------------------------------------------------------------------
 6 
 7 setlocal
 8 
 9 rem Guess CATALINA_HOME if not defined
10 set "CURRENT_DIR=%cd%"
11 if not "%CATALINA_HOME%" == "" goto gotHome
12 set "CATALINA_HOME=%CURRENT_DIR%"
13 if exist "%CATALINA_HOME%incatalina.bat" goto okHome
14 cd ..
15 set "CATALINA_HOME=%cd%"
16 cd "%CURRENT_DIR%"
17 :gotHome
18 if exist "%CATALINA_HOME%incatalina.bat" goto okHome
19 echo The CATALINA_HOME environment variable is not defined correctly
20 echo This environment variable is needed to run this program
21 goto end
22 :okHome
23 
24 set "EXECUTABLE=%CATALINA_HOME%incatalina.bat"
25 
26 rem Check that target executable exists
27 if exist "%EXECUTABLE%" goto okExec
28 echo Cannot find "%EXECUTABLE%"
29 echo This file is needed to run this program
30 goto end
31 :okExec
32 
33 rem Get remaining unshifted command line arguments and save them in the
34 set CMD_LINE_ARGS=
35 :setArgs
36 if ""%1""=="""" goto doneSetArgs
37 set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
38 shift
39 goto setArgs
40 :doneSetArgs
41 
42 call "%EXECUTABLE%" start %CMD_LINE_ARGS%
43 
44 :end

三、源码分析 

 1 @echo off
 2 setlocal
 3 set "CURRENT_DIR=%cd%"
 4 rem 将当前文件位置赋值给CURRENT_DIR变量
 5 if not "%CATALINA_HOME%" == "" goto gotHome
 6 rem 如果变量CATALINA_HOME不为空,跳转至gotHome
 7 
 8 set "CATALINA_HOME=%CURRENT_DIR%"
 9 rem 如果变量CATALINA_HOME不存在,将当前文件目录赋值给CATALINA_HOME
10 if exist "%CATALINA_HOME%incatalina.bat" goto okHome
11 rem 如果存在%CATALINA_HOME%incatalina.bat文件,跳转至okHome
12 cd ..
13 rem 返回目录上一级
14 set "CATALINA_HOME=%cd%"
15 rem 设置变量CATALINA_HOME为当前目录
16 cd "%CURRENT_DIR%"
17 rem 返回文件所在目录
18 :gotHome
19 if exist "%CATALINA_HOME%incatalina.bat" goto okHome
20 rem 如果存在%CATALINA_HOME%incatalina.bat,则跳转至okHome
21 echo The CATALINA_HOME environment variable is not defined correctly
22 echo This environment variable is needed to run this program
23 goto end
24 :okHome
25 
26 set "EXECUTABLE=%CATALINA_HOME%incatalina.bat"
27 rem 设置变量EXECUTABLE为%CATALINA_HOME%incatalina.bat
28 rem Check that target executable exists
29 if exist "%EXECUTABLE%" goto okExec
30 rem 如果存在文件%EXECUTABLE%,则跳转至okExec
31 echo Cannot find "%EXECUTABLE%"
32 echo This file is needed to run this program
33 goto end
34 :okExec
35 
36 rem Get remaining unshifted command line arguments and save them in the
37 set CMD_LINE_ARGS=
38 :setArgs
39 if ""%1""=="""" goto doneSetArgs
40 set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
41 shift
42 rem 将参数向左移位
43 goto setArgs
44 :doneSetArgs
45 
46 call "%EXECUTABLE%" start %CMD_LINE_ARGS%
47 rem 调用%CATALINA_HOME%incatalina.bat文件并传递参数
48 
49 :end

四、结论

服务器startup.bat主要做了以下几件事情:

1、检查环境

2、设置变量

startup.bat设置变量CATALINA_HOME供catalina.bat使用

3、准备参数

4、调用catalina.bat

传递参数格式:[start %CMD_LINE_ARGS%]

版权声明:本文原创发表于 博客园,作者为 微小处存bug 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

感谢您的阅读,若您觉得本文对您有所帮助,请点击右下角的推荐按钮。

若您想支持作者,详见下方二维码:

     

原文地址:https://www.cnblogs.com/open-technology/p/10958112.html