693579551 发表于 2015-11-14 14:45:57

Tomcat学习笔记(一)——startup.bat 与shutdown.bat

  最近在学习 张孝祥老师的Tomcat 视频, 算是后知后觉了吧,为了以后复习巩固,我把一些要点记下来。
  
  操作系统:win7 旗舰版 64位
  Tomcat 版本:apache-tomcat-7.0.23-windows-x64.zip (直接加压使用)
  Tomcat 解压目录:D:\tomcat-7.0.23(“Tomcat 解压目录”根据具体情况改变 )
  一、 设置Tomcat 运行环境
  Tomcat 运行需要设置JAVA_HOME 环境变量
  JAVA_HOME 变量的设置方式有两种:
  方法1.    在“计算机”——右键点击“属性”—— 点击 “高级系统变量” ——在 “高级”选项卡下——点击“ 环境变量”   ——在“系统变量”   下点击“新建” 按钮
  输入“变量名” :JAVA_HOME
  输入变量值:D:\jdk1.7.0_01 (这是我的JDK的安装目录)
  然后一直点击确定按钮
  
  方法2.    找到 D:\tomcat-7.0.23\bin目录 下的startup.bat批处理文件,用文本方式打开
  在第一行代码后面添加代码set JAVA_HOME=D:\jdk1.7.0_01
  如下:

@echo offset JAVA_HOME=D:\jdk1.7.0_01  
  二、环境变量测试:
  运行cmd 下转到D:\tomcat-7.0.23\bin   目录下运行startup.bat

  Tomcat 会弹出一个新的运行框,显示巴拉巴拉一堆运行状态回显,如果回显文字信息中没有错误和警告,说明 Tomcat启动加载已经OK
  浏览器运行:http://localhost:8080/   弹出漂亮的 Tomcat主页面 说明Tomcat 运行成功
  
  三、 startup.bat批处理文件详解
  提示:我是在cmd中,转到D:\tomcat-7.0.23\bin目录下运行 startup.bat ,所以我的当前工作目录为:D:\tomcat-7.0.23\bin ,以此目录为例进行详解
  Tomcat 解压目录:D:\tomcat-7.0.23

@echo off//此行命令效果:只显示下列命令执行结果,不显示命令本身
if "%OS%" == "Windows_NT" setlocal//如果本机OS是windows_NT 则设置本机环境变量rem Guess CATALINA_HOME if not defined//为注释代码:判断 CATALINA_HOME 环境变量是否已经配置
set "CURRENT_DIR=%cd%"//设置CURRENT_DIR 变量(当前工作目录)为:D:\tomcat-7.0.23\bin
if not "%CATALINA_HOME%" == "" goto gotHome//如果配置了 CATALINA_HOME 环境变量跳转执行 gotHome
set "CATALINA_HOME=%CURRENT_DIR%"         //如果没有设置,则设置 CATALINA_HOME 变量为:D:\tomcat-7.0.23\bin
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //查看"当前工作目录\bin" 目录(即D:\tomcat-7.0.23\bin\bin)下是否存在catalina.bat 文件,如存在跳转okHome
cd ..//回到上级子目录,即:D:\tomcat-7.0.23 ,此时当前工作目录已经更改为:D:\tomcat-7.0.23
set "CATALINA_HOME=%cd%" // 更改 CATALINA_HOME 变量值为:D:\tomcat-7.0.23
cd "%CURRENT_DIR%"//切换至当前工作目录:D:\tomcat-7.0.23

  

:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome//如果找得到 catalina.bat 批处理文件,则跳转okHome
echo The CATALINA_HOME environment variable is not defined correctly    //找不到catalina.bat文件,显示错误信息,然后结束
echo This environment variable is needed to run this program       //在cmd执行startup.bat的当前目录不为:“tomcat解压目录”和“tomcat解压目录\bin”时会提示此错误信息
goto end//由此可见 catalina.bat 才是真正的执行 Tomcat 启动和关闭的批处理程序
//在执行startup.bat时,如果startup.bat 文件不在 ”Tomcat解压目录“或者“Tomcat解压目录\bin” 目录下//才会提示CATALINA_HOME 错误信息:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"   //至此catalina.bat文件已经确定存在了,现在设置 EXECUTABLE (执行文件)环境变量rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec       //如果EXECUTABLE 变量已经设置成功,跳转okExec执行echo Cannot find "%EXECUTABLE%"                //否则提示找不到catalina.bat 执行文件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=    //清除CMD_LINE_ARGS环境变量原来的值
:setArgs
if ""%1""=="""" goto doneSetArgs //如果第二个参数为空跳转doneSetArgs,即已经接完了传入的参数set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1    //给 CMD_LINE_ARGS 添加参数,并以空格隔开shift                        //截掉第一个参数,使第二个参数变为第一个参数goto setArgs//以上5行代码的作用就是将所有参数用空格间隔开,并赋值CMD_LINE_ARGS
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS%//打开新窗口,执行 EXECUTABLE 环境变量所代表的catalina.bat 批处理文件与 CMD_LINE_ARGS 代表的参数:end//结束
  


  
  总结:
  1.    startup.bat 的作用主要是检查catalina.bat 执行所需环境,并调用catalina.bat 批处理文件
  2.   shutdown.bat 文件与 startup.bat 文件的内容只有一点不同,即倒数第二行代码,通过修改执行参数 start为stop并交由catalina.bat 执行实现Tomcat 的关闭功能
  补充:
  1.   rem
  代码前面有 rem :所修饰的代码是注释说明文字
  2.   @
  代码前面有@:所修饰的代码执行时,只显示执行结果,不显示命令本身
  
  

版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Tomcat学习笔记(一)——startup.bat 与shutdown.bat