启动tomcat服务器,为何要配置CATALINA_HOME和JAVA_HOME ?_不见不散的结局是曲终人散_新浪博客

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

直接配置到系统变量path中,cmd执行Java,javac都正常 , 认为jdk安装配置没有问题 。 

本地安装tomcat , 在tomcat的bin目录下执行startup.bat执行运行tomcat服务器,闪退 !

窗口迅速关闭,并未看到错误信息 , 此时打开cmd,将tomat的bin目录下的startup.bat文件直接拖动到cmd中,回车执行,运行时看到报错信息 : 


翻译一下:cataline_home环境变量未正确的定义,这个环境变量是运行这个程序所必需的。

好的,那么下一步配置cataline_home环境变量,类似jdk的java_home的配置 , 


配置的是tomcat的根目录,再次运行tomcat,还是闪退,类似第一次执行方式,看报错信息 : 


翻译:既没有定义java_home环境变量,也未定义jre_home环境变量,运行此程序只是需要其中一个环境变量 ,

要配置java_home环境变量, 在配置jdk的时候我并没有配置java_home环境变量,而是直接将jdk的bin目录配置到系统变量中的path下,好的,现在配置下java_home环境变量,


配置完毕,至此我直接双击tomcat中bin目录下的startup.bat文件,运行tomcat,可以正确的运行 


事后分析 : 运行tomcat,系统提示我配置了CATALINA_HOME和JAVA_HOME,为什么tomcat的运行需要配置CATALINA_HOME和JAVA_HOME? 为什么不是配置AAA_HOME , BB_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安装目录的环境变量的名字是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服务器的启动进程。

文章地址: http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值