the catalina_home environment variable

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39019865/article/details/81077850

在启动tomcat的start.bat时报了这个错误

The CATALINA_HOME environment variable is not defined correctly.This environment variable is needed to run this program

这个问题一般出现于CATALINA_HOME、JAVA_HOME的环境变量配置错误,例如结尾的路径包含多余的符号如;\等,请检查。

环境变量配置如下:
name:JAVA_HOME
value:C:\jdk1.6.0_31(路经根据自己的实际情况修改)
这里写图片描述
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
这里写图片描述

而我当时配置这一块儿的时候尝试修改了很多次,最终确认没问题,却仍然报错。就需要在start.bat文件中设置CATALINA_HOME后的文件片段,加入这一行:

set CATALINA_HOME=D:\apache-tomcat
这里写图片描述
之前配置的CATALINA_HOME环境变量删了就可以。

这一步是设置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这两个环境变量添加到系统的环境变量中。

有的读者可能会对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是一样的。

其他相关:
用文本编辑工具打开用于启动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目录的父目录下调用除外)。
这里写图片描述
所以这其实是一个二选一的问题,要么配置环境变量,要么修改start.bat配置。
相关文章:
http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html

猜你喜欢

转载自blog.csdn.net/qq_39019865/article/details/81077850
今日推荐