tomcat启动(设置catalina_home和不设置的区别)

原创 2016年05月31日 13:44:01

用于启动Tomcat的批处理文件startup.bat,在这个文件中,

1.首先判断CATALINA_HOME环境变量是否为空:

         (1)如果为空,就将当前目录设为CATALINA_HOME的值。

         (12)接着判断当前目录下是否存在bin\catalina.bat,如果文件不存在,将当前目录的父目录设为CATALINA_HOME的值。根据笔者机器上Tomcat安装目录的层次结构,最后CATALINA_HOME的值被设为Tomcat的安装目录。

          (2)如果环境变量CATALINA_HOME已经存在,则通过这个环境变量调用bin目录下的“catalina.bat start”命令。通过这段分析,我们了解到两个信息,一是Tomcat启动时,需要查找CATALINA_HOME这个环境变量,如果在Tomcat的bin目录下调用startup.bat,Tomcat会自动并正确设置CATALINA_HOME;二是执行startup.bat命令,实际上执行的是“catalina.bat start”命令。

 

如果我们不是在Tomcat的bin目录作为当前目录时调用startup.bat,就会出现如下图所示的错误信息(在bin目录的父目录下调用除外)。

 技术分享

图    在其他目录下启动Tomcat出错

如果要想在任意目录下都能启动Tomcat,就需要设置CATALINA_HOME环境变量,你可以将CATALINA_HOME添加到Windows XP系统的环境变量中,其值就是Tomcat的安装目录。在笔者的机器上,Tomcat的安装目录是D:\apache-tomcat-6.0.36-windows-x86\apache-tomcat-6.0.36。添加CATALINA_HOME环境变量的过程和前述添加JAVA_HOME环境变量的过程是一样的。如果你不想在系统的环境变量中添加,也可以直接在startup.bat文件中进行设置。下面是在startup.bat文件中设置CATALINA_HOME后的文件片段:

 

 

rem $Id: startup.bat 908749 2010-02-10 23:26:42Z markt $
rem ---------------------------------------------------------------------------

set CATALINA_HOME=D:\apache-tomcat-6.0.36-windows-x86\apache-tomcat-6.0.36

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 ..

...

注意以粗体显示的这句代码的作用就是设置CATALINA_HOME环境变量,在它的下面是判断CATALINA_HOME是否为空的语句。如果找不准位置,干脆将设置CATALINA_HOME环境变量的这句代码放到文件的第一行。JAVA_HOME环境变量也可以采用同样的方式进行设置。不过,如果要在其他目录下利用shutdown.bat来关闭Tomcat服务器,则需要在shutdown.bat文件中设置CATALINA_HOME和JAVA_HOME这两个环境变量,设置变量的位置和startup.bat文件一样,都是在判断CATALINA_HOME是否为空之前。当然,为了一劳永逸,避免重装Tomcat后还要进行设置(需要是同一版本的Tomcat安装在同一位置),我们最好还是将CATALINA_HOME和JAVA_HOME这两个环境变量添加到Windows XP系统的环境变量中。

 

有的读者可能会对Tomcat安装目录的环境变量的名字是CATALINA_HOME而感到奇怪,按照其他环境变量的设置来看,JAVA_HOME表示JDK的安装目录,那么应该用TOMCAT_HOME来表示Tomcat的安装目录,可为什么要使用CATALINA_HOME呢?实际上,在Tomcat 4以前,用的就是TOMCAT_HOME来表示Tomcat的安装目录,在Tomcat 4以后,采用了新的Servlet容器Catalina,所以环境变量的名字也改为了CATALINA_HOME。

在Windows系统下环境变量的名字是与大小写无关的,也就是说,JAVA_HOME和java_home是一样的。

 

了解了startup.bat文件以后,我们再来看看真正负责启动Tomcat服务器的catalina.bat文件。通过分析catalina.bat文件,我们发现它还调用了一个文件setclasspath.bat。在setclasspath.bat文件中,它检查JAVA_HOME环境变量是否存在,并通过JAVA_HOME环境变量,找到java.exe,用于启动Tomcat。在这个文件中,还设置了其他的一些变量,代表调用Java的标准命令,有兴趣的读者可以自行分析一下这个文件。在执行完setclasspath.bat之后,catalina.bat剩下的部分就开始了Tomcat服务器的启动进程。

 

直接执行catalina.bat时,需要带上命令行的参数。读者可以在命令提示符窗口下,执行catalina.bat,就会打印出catalina.bat命令的各种参数及其含义,如下图所示。

技术分享

(点击查看大图)图     catalina.bat的各参数信息

 

其中常用的参数是start、run和stop。参数start表示在一个单独的窗口中启动Tomcat服务器,参数run表示在当前窗口中启动Tomcat服务器;参数stop表示关闭Tomcat服务器。我们执行startup.bat,实际上执行的就是“catalina.bat start”命令;执行shutdown.bat,实际上执行的是“catalina.bat stop”命令。“catalina.bat run”命令有时候是非常有用的,特别是当我们需要查看Tomcat的出错信息时。

 

在开发JSP程序时,经常会碰到自己机器上的8080端口号被别的应用程序占用,或者在配置server.xml时出现错误,当通过startup.bat(相当于执行“catalina.bat start”)启动Tomcat服务器时,如果启动过程中出现严重错误,由于是在单独的窗口中启动Tomcat服务器,所以一旦启动失败,命令提示符窗口就自动关闭了,程序运行中输出的出错信息也随之消失,而且没有任何的日志信息,这就使得我们没有办法找出错误原因。当出现错误时,我们可以换成“catalina.bat run”命令再次启动,一旦启动失败,仅仅是Tomcat服务器异常终止,但是在当前的命令提示符窗口下仍然保留了启动时的出错信息,这样我们就可以查找启动失败的原因了。



在一个机器上启动多个tomcat:

(1)未设置环境变量,只需要将tomcat目录中的server.xml中的端口号修改,分别启动tomcat即可

 (2)设置环境变量,则除了修改server.xm文件中的端口号之外,还需要进行环境变量的配置,同时对相应文件中的变量名进行修改

总结:

       tomcat启动的时候,会先去找catalina_home,如果未将其配置成环境变量,则将当前目录置为catalina_home的值;如果设置了环境变量,则直接去境变量对应的目录中去执行startup.bat文件。

       如果同一台电脑上启动多个tomcat,在环境变量中只配置了一个,则会出现端口占用的错误,解决办法:每个tomcat的目录都配置环境变量,或者都不设置环境变量

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Tomcat环境变量Catalina_Home配置

1、CATALINA_HOME是TOMCAT安装路径的别名,目的是为了方便使用TOMCAT 2、计算机>属性>环境变量, 新建环境变量。变量名为CATALINA_HOME ,变量值tomcat的...
  • henulwj
  • henulwj
  • 2013年05月22日 18:51
  • 27718

Linux下配置java tomcat

一 下载JDK首先从su n 网站上下载 jdk-1_5_0_11-linux-i586.bin,之后解压到/usr/local/目录下 文件名为 jdk1.5.0_11将tomcat解压放到/usr...

Linux中Tomcat 自动设置CATALINA_HOME方法

Linux中Tomcat 自动设置CATALINA_HOME方法,实现0配置平移扩展。
  • catoop
  • catoop
  • 2015年09月01日 17:24
  • 9748

启动tomcat服务器,为何要配置CATALINA_HOME和JAVA_HOME ?

问题 :win10系统,本地安装jdk,配置环境变量,是将jdk的bin目录,笔者本地目录为:E:\JavaTools\jdk1.8.0_131\bin 直接配置到系统变量path中,cmd执行...

设置CATALINA_HOME环境变量

设置CATALINA_HOME环境变量 1、CATALINA_HOME是TOMCAT安装路径的别名,目的是为了方便使用TOMCAT 2、计算机>属性>环境变量, 新建环境变量。变量名为CATALI...
  • vu263
  • vu263
  • 2014年03月18日 00:47
  • 1799

Tomcat解惑 之 CATALINA_HOME与CATALINA_BASE

看Tomcat源码一段时间一直很好奇为什么有CATALINA_HOME和CATALINA_BASE区别: 分CATALINA_HOME和CATALINA_BASE概念是为了解决这样的场景: 你需要...

CATALINA_BASE与CATALINA_HOME的区别

CATALINA_BASE与CATALINA_HOME的区别

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Catalina_Home的物理路径

就是Tomcat的安装目录,如:E:/Program Files/Apache Software Foundation/Apache Tomcat 6.0.18
  • jubincn
  • jubincn
  • 2009年07月19日 22:01
  • 1006

Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)

原文地址:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html 用文本编辑工具打开用于启动Tomcat的批...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tomcat启动(设置catalina_home和不设置的区别)
举报原因:
原因补充:

(最多只允许输入30个字)