文档章节

tomcat 7 startup.bat 详解

中国扛把子
 中国扛把子
发布于 2018/09/18 10:54
字数 967
阅读 11
收藏 7
@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

上面代码的相关含义:

setlocal 
- - - -将后面的环境变量设置为临时环境变量(直到endlocal 命令的出现)

rem Guess CATALINA_HOME if not defined 
set “CURRENT_DIR=%cd%” 
- - - - 将 CURRENT_DIR 环境变量设置为当前路径 
if not “%CATALINA_HOME%” == “” goto gotHome 
- - - - 判断是否存在 CATALINA_HOME 环境变量。如果存在该环境变量跳转到gotHome标签 
set “CATALINA_HOME=%CURRENT_DIR%” 
- - - - 如果不存在CATALINA_HOME环境变量将CATALINA_HOME 设置为CURRENT_DIR所指向的路径(即当前路径) 
if exist “%CATALINA_HOME%\bin\catalina.bat” goto okHome 
- - - - 判断是否存在%CATALINA_HOME%\bin\catalina.bat文件,如果存在跳转到okHome标签 
cd .. 
- - - -这里是假设你开始已经进入到了tomcat的bin目录,所以就退到上一级目录(变为了当前目录) 
set “CATALINA_HOME=%cd%” 
- - - - 将CATALINA_HOME 设置为当前路径 
cd “%CURRENT_DIR%” 
- - - - 进入上面设置的 CURRENT_DIR 路径(这里又变成了当前路径) 
:gotHome 
if exist “%CATALINA_HOME%\bin\catalina.bat” goto okHome 
- - - -判断是否存在%CATALINA_HOME%\bin\catalina.bat该文件

echo The CATALINA_HOME environment variable is not defined correctly 
echo This environment variable is needed to run this program 
goto end 
如果不存在打印上面的内容,并且跳转到end标签,结束程序 
:okHome

set “EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat” 
- - - - 将 EXECUTABLE环境变量设置为tomcat服务器bin目录下的catalina.bat路径 
rem Check that target executable exists 
if exist “%EXECUTABLE%” goto okExec 
- - - - 判断是否存在catalina.bat文件,如果存在跳转到okExec标签。 
echo Cannot find “%EXECUTABLE%” 
echo This file is needed to run this program 
goto end 
- - - - 如果没有找到catalina.bat文件打印上面内容,并跳转到end标签。

:okExec

rem Get remaining unshifted command line arguments and save them in the 
set CMD_LINE_ARGS= 
将 CMD_LINE_ARGS 设置为空(CMD_LINE_ARGS为设置参数的一个环境变量)。 
:setArgs 
if “”%1”“==”“”” goto doneSetArgs 
检查%1是否为空,如果为空就表示没有参数了,设置参数结束,转至doneSetArgs标签 
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 
- - - - 如果不为空就把%1指向的参数追加到CMD_LINE_ARGS这个环境变量中。 
shift 
- - - - 删除第一个参数,后面的参数左移一个位置。 
goto setArgs 
- - - -跳转到 setArgs 标签。 
:doneSetArgs

call “%EXECUTABLE%” start %CMD_LINE_ARGS% 
- - - 通过call命令调用catalina.bat启动脚本,并传递参数 
:end

从代码我们可以看出 执行startup.bat相当于执行catalina.bat start

在tomcat的bin目录下还存在着configtest.bat文件、shutdown.bat文件、version.bat文件,他们的实质都是调用的catalina.bat文件,只不过是他们传递的参数不相同罢了。

运行configtest.bat文件,相当于执行catalina.bat configtest; 
运行configtest.bat文件,相当于执行catalina.bat stop; 
运行version.bat文件,相当于执行catalina.bat version;

但是运行digest.bat文件时,他执行的文件是tool-wrapper.bat文件传递的参数是 
-server org.apache.catalina.realm.RealmBase。

可以看出catalina.bat文件才是tomcat的关键!! 

 

© 著作权归作者所有

中国扛把子
粉丝 6
博文 45
码字总数 17631
作品 0
杭州
程序员
私信 提问
问一个关于 Windows 7 和 Tomcat 的高难度问题

在 Windows 下 Tomcat 的启动命令是 startup.bat 我的问题是,怎么把 startup.bat 这个命令锁定在 Windows 7 的任务栏中。 不是通过建工具栏的方法哦。...

红薯
2011/11/10
1K
9
windows 安装tomcat 7

tomcat 算是最知名的java容器了,windows下安装使用tomcat 7其实并不易,本文以windows 2008R2 x64为例。 1、下载安装JDK,设置JAVA_HOME (略) 2、下载tomcat 7 由于我们是x64系统,所以需...

紫色葡萄
2016/07/17
0
0
在一台服务器上配置多个Tomcat的方法

在一台服务器上配置多个Tomcat的方法: 这几天由于在研究OGSA-DQP,但是其网站上只提供了在Linux下的安装文档,而且需要在一天服务器上配置两个Tomcat,但是我一直没有弄懂怎么在Windows下实...

ForingY
2016/05/20
203
0
【问题】Tomcat中 执行tomcat7.exe报错

The system cannot find the Registry key for service 'tomcat7' 问题: 在启动解压后的tomcat7,点击bin下面的tomcat7.exe失败了,报错“The system cannot find the Registry key for ser......

xiaoxiaomo
2015/01/21
261
0
java环境配置--转载

开发工具获取 开发工具包JDK:可到ORACLE公司官方网站(http://www.oracle.com/)下载。官网的网速可能会有些慢,也可以从其他途径下载JDK。 Java Web应用的Web服务器Tomcat:Tomcat官网(http...

我是小个子啊
2016/07/20
32
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 年迈渔夫遭黑帮袭抢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享Elvis Presley的单曲《White Christmas》: 《White Christmas》- Elvis Presley 手机党少年们想听歌,请使劲...

小小编辑
今天
1K
20
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
16
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部