操作系统: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
[javascript]
- :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. @
代码前面有 @ :所修饰的代码执行时,只显示执行结果,不显示命令本身