🍀前言
上篇文章提到Windows环境下多个tomcat启动方法
在服务器配置了多个tomcat,同时配置了CATALINA_HOME
,这个就给后面的tomcat启动挖坑了 。
🍀tomcat启动流程
查看bin/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
这里对CATALINA_HOME环境变量
进行了判断,如果环境变量为空,将当前目录设为CATALINA_HOME的值。
接着判断当前目录下是否存在bin\catalina.bat
,如果文件不存在,将当前目录的父目录设为CATALINA_HOME
的值。
我的服务器因为已经设置了环境变量CURRENT_HOME
,所以调用了另一个tomcat的catalina.bat
,导致tomcat启动错误。
🍀修改方法
直接修改startup.bat
文件,设置CATALINA_HOME
默认值。设置成tomcat安装路径即可
set CATALINA_HOME=D:\apache-tomcat-7.2.1
🍀补充
启动tomcat的文件startup.bat
修改后,记得要把关闭tomcat的文件shutdown.bat
也修改了,不然关闭tomcat也可能出现奇奇怪怪的问题。
set CATALINA_HOME=D:\apache-tomcat-7.2.1