`

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

 
阅读更多

 

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

 

     用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读。在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值。接着判断当前目录下是否存在bin\catalina.bat,如果文件不存在,将当前目录的父目录设为CATALINA_HOME的值。根据笔者机器上Tomcat安装目录的层次结构,最后CATALINA_HOME的值被设为Tomcat的安装目录。如果环境变量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服务器异常终止,但是在当前的命令提示符窗口下仍然保留了启动时的出错信息,这样我们就可以查找启动失败的原因了。

 

 

 

 

原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html

分享到:
评论

相关推荐

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

    通过本文的分析,我们将深入理解为什么需要配置CATALINA_HOME环境变量,以及它在Tomcat启动过程中所扮演的角色。 首先,我们来看看环境变量的作用。在Windows系统中,环境变量是操作系统用来指定系统运行环境的一些...

    Java和Tomcat环境变量配置

    在IT领域,特别是对于Web应用开发而言,正确配置Java和Tomcat环境变量是至关重要的一步。这不仅能够确保开发环境的稳定性和效率,还能帮助开发者更顺畅地进行应用程序的部署与调试。根据提供的文件信息,我们可以...

    Tomcat7环境变量配置

    #### 二、JAVA_HOME环境变量配置 ##### 1. JAVA_HOME的作用 - **定义**:`JAVA_HOME`是Java开发工具包(JDK)的安装路径。 - **作用**:Tomcat通过该变量来找到JDK的位置,从而实现对Java程序的支持。 - **重要性**...

    tomcat配置环境变量

    ### Tomcat配置环境变量知识点详解 #### 一、前言 Apache Tomcat 是一款免费开源的Servlet容器,它能够运行Servlet程序以及JavaServer Pages (JSP)。在部署基于Java的应用程序时,Tomcat是非常常用的选择之一。...

    Tomcat 8.0 64位下载_Tomcat环境变量配置下载

    主要涉及的环境变量包括`CATALINA_HOME`,它指向Tomcat的安装目录,以及`JAVA_HOME`,指向已安装的JRE或JDK的路径。在Windows系统中,这些变量通常会添加到系统的Path变量中,以便于命令行启动Tomcat。 从标签...

    Java环境变量和Tomcat配置

    ### Java环境变量与Tomcat配置详解 #### 一、Java环境变量配置 为了在Windows系统上正确地配置Java开发环境,我们需要设置几个重要的环境变量。这些环境变量对于编译和运行Java程序至关重要。 ##### 1. 设置JAVA_...

    JDK + Tomcat环境变量配置(绝对简单实用)

    2. **设置JAVA_HOME环境变量(针对Tomcat)** 为了确保Tomcat能够识别JDK的位置,还需要在Tomcat的启动脚本中设置`JAVA_HOME`。 - 打开Tomcat安装目录下的`bin`文件夹,找到`startup.bat`文件并用文本编辑器打开...

    JDK和maven的环境变量配置

    Tomcat环境变量配置是Tomcat服务器的基础配置,正确的配置可以确保Tomcat服务器的正确启动和运行。Tomcat环境变量配置需要配置CATALINA_HOME和PATH变量。CATALINA_HOME变量指向Tomcat的安装目录,例如F:\Tomcat50。...

    tomcat及javahaome环境变量的配置

    ### CATALINA_HOME环境变量的配置 `CATALINA_HOME`环境变量用于指定Apache Tomcat服务器的安装目录。它是运行基于Java的应用程序服务器所必需的。 #### 配置步骤: 1. **确定Tomcat安装位置**:确认Tomcat已经...

    TOMCAT一键设置环境变量

    为了使Tomcat能够正常运行,我们需要配置一些环境变量,这些变量包括JAVA_HOME、CATALINA_HOME以及PATH等。"TOMCAT一键设置环境变量"指的是通过一个脚本文件(如一键设环境变量Tomcat.bat)快速配置这些必要的环境...

    java tomcat环境变量配置

    通过本文对“java tomcat环境变量配置”的深入探讨,我们不仅了解了关键环境变量的具体含义和作用,还掌握了如何正确配置这些变量以支持Java和Tomcat的运行。对于初学者而言,遵循本文的指导进行实践,将有助于建立...

    JDK1.6_tomcat_6.0环境变量配置

    ### JDK1.6与Tomcat 6.0环境变量配置详解 #### 一、环境准备与下载 在开始配置之前,首先要确保已经下载了所需的软件。文中提到的是JDK 1.6.10和Tomcat 6.0。虽然这些版本已经较为陈旧,但在某些特定场景下仍有...

    jdk 与 tomcat 环境变量配置大全

    jdk 与 tomcat 环境变量配置大全 jdk 和 tomcat 环境变量配置是 Java 编程的基础,正确的配置是保证 Java 应用程序运行的前提。本文将详细介绍 jdk 和 tomcat 环境变量配置的步骤和注意事项。 一、下载 jdk 和 ...

    Java环境变量\Tomcat配置

    Java环境变量配置是Java开发的基础,它涉及到JDK的安装路径和相关库的引用。`JAVA_HOME`变量应设置为JDK的安装目录,例如在给出的例子中是`C:\Program Files\Java\jdk 1.5.0_08`。`PATH`变量则需要包含`JAVA_HOME\...

    Java环境变量配置和tomcat自动启动

    为了更好地管理Tomcat,我们需要设置两个额外的环境变量:`CATALINA_HOME`和`JRE_HOME`。 - `CATALINA_HOME`: 指定Tomcat的安装目录。例如: ``` CATALINA_HOME=TOMCAT目录 ``` - `JRE_HOME`: 指向JRE的安装目录...

    jdk配置环境变量

    配置 Tomcat 环境变量需要新建两个系统变量:CATALINA_BASE 和 CATALINA_HOME。变量值分别为 C:\tomcat 和 C:\tomcat。然后,需要在 Path 变量中添加 %CATALINA_HOME%\lib;%CATALINA_HOME%\bin;。 配置 JDK 环境...

    tomcat环境变量配置

    JDK环境变量配置: 1,新建变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk1.7.0 2,打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 3,新建变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\...

Global site tag (gtag.js) - Google Analytics