2025年5月21日 星期三 乙巳(蛇)年 二月廿三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > DOS/BAT与(脚本)

windows下tomcat8启动脚本代码剖析--startup.bat

时间:04-14来源:作者:点击数:54

Windows下,Tomcat可以以服务形式启动、停止,也可以执行脚本启动(startup.bat)、停止(shutdown.bat)。执行startup.bat时会调用catalina.bat,catalina.bat脚本又会调用setclasspath.bat进行java class path指定。本文将剖析startup.bat的代码实现。

1、tomcat版本及安装目录

版本:8.0.36

安装目录:E:\tomcat8

2、startup.bat脚本代码
  • @echo off
  • rem Licensed to the Apache Software Foundation (ASF) under one or more
  • rem contributor license agreements. See the NOTICE file distributed with
  • rem this work for additional information regarding copyright ownership.
  • rem The ASF licenses this file to You under the Apache License, Version 2.0
  • rem (the "License"); you may not use this file except in compliance with
  • rem the License. You may obtain a copy of the License at
  • rem
  • rem http://www.apache.org/licenses/LICENSE-2.0
  • rem
  • rem Unless required by applicable law or agreed to in writing, software
  • rem distributed under the License is distributed on an "AS IS" BASIS,
  • rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • rem See the License for the specific language governing permissions and
  • rem limitations under the License.
  • rem ---------------------------------------------------------------------------
  • rem Start script for the CATALINA Server
  • rem ---------------------------------------------------------------------------
  • 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
3、代码说明

以每行注释方式,说明每行代码作用,并移除原代码中的所有rem注释。

  • rem 关闭回显
  • @echo off
  • rem 开启局部变量
  • setlocal
  • rem 设置CURRENT_DIR为当前目录,本例为e:\tomcat8
  • set "CURRENT_DIR=%cd%"
  • rem 如果CATALINA_HOME非空,执行gotHome
  • if not "%CATALINA_HOME%" == "" goto gotHome
  • rem CATALINA_HOME为空,则设置CATALINA_HOM=CURRENT_DIR,本例为e:\tomcat8
  • set "CATALINA_HOME=%CURRENT_DIR%"
  • rem 如果存在catalina.bat文件,执行okHome
  • if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
  • rem 如果不存在catalina.bat文件,则返回上级目录
  • cd ..
  • rem 变量赋值
  • set "CATALINA_HOME=%cd%"
  • rem 进入CURRENT_DIR目录
  • cd "%CURRENT_DIR%"
  • :gotHome
  • rem 如果bat文件存在执行okHome,否则输出错误信息,结束脚本。
  • 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
  • rem 变量赋值
  • set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
  • rem "%EXECUTABLE%"存在则执行okExec,本例为e:\tomcat8\bin\catalina.bat;不存在则报错并结束脚本
  • if exist "%EXECUTABLE%" goto okExec
  • echo Cannot find "%EXECUTABLE%"
  • echo This file is needed to run this program
  • goto end
  • :okExec
  • set CMD_LINE_ARGS=
  • rem 参数拼接,保留startup.bat传入的参数;
  • :setArgs
  • if ""%1""=="""" goto doneSetArgs
  • set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
  • shift
  • goto setArgs
  • :doneSetArgs
  • rem 调用catalina.bat start 拼接startup.bat 传入的参数
  • rem 如startup.bat arg1 arg2,则catalina.bat start arg1 arg2
  • call "%EXECUTABLE%" start %CMD_LINE_ARGS%
  • :end

整个startup.bat脚本最核心代码就是调用catalina脚本,实际场景类似:

  • call E:\tomcat8\bin\catalina.bat start
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门