CATALINA |
您所在的位置:网站首页 › vericut911环境变量没有定义 › CATALINA |
背景
在学习elasticsearch时为了方便进行数据查询,使用了head插件 因为elasticsearch版本较高(6.3.0),没有与版本相符的head插件,将以独立web项目运行 所以提供了一个tomcat 单独运行head web项目 在使用该tomcat时遇到了无法启动问题 问题描述及初步解决双击startup.bat脚本无任何反应,所以在cmd窗口去运行,结果发现如下错误信息: 翻译为: CATALINA_HOME环境变量定义不正确 运行此程序需要此环境变量遂查看系统环境变量,果然发现该环境变量: 删除该变量后,tomcat得以正常启动 那么为啥会出现这个问题呢? 在经过面向百度编程之后,找到问题原因:tomcat的startup.bat脚本中有代码如下: 虽然看不懂语法 但是大概意思可以理解: 启动时如果设置了CATALINA_HOME就会去对应的CATALINA_HOME下的bin目录去找对应的脚本启动tomcat 如果没找到就设置CATALINA_HOME为当前目录 就会去执行当前路径的bin目录下的脚本(正常启动) 然后在上面代码的26行我找到了出错原因: 我系统变量中配置的目录非tomcat根目录而是bin目录 根据26行的代码可知 脚本启动后它会去CATALINA_HOME下的bin目录去找catalina.bat脚本执行 我的变量中配置的目录为bin目录所以报了CATALINA_HOME环境变量定义不正确 找到错误原因后我尝试修改了CATALINA_HOME的环境变量 删除了原本的bin 改为了tomcat7的根目录 再次尝试启动tomcat8 发现本次可以正常启动 但是启动的tomcat却是环境变量中配置的tomcat7 这证明了之前的猜测是正确的!进行最后一步测试 随后删除该成员变量后tomcat8正常启动! 得出结论: tomcat启动时如果设置了系统变量CATALINA_HOME就会拼接路径为:CATALINA_HOME\bin,然后去该路径执行对应脚本 如果没有设置CATALINA_HOME,则会正常执行当前目录的脚本 至此该问题解决! 终极解决方案解决该问题的第二天(重启电脑后),当我再次尝试启动tomcat8时,再次出现了第一次的问题,直接闪退,使用cmd启动后发现了跟第一次一样的问题:CATALINA_HOME环境变量定义不正确 再次去查看系统环境变量确认已经删除了CATALINA_HOME环境变量 经过再次上网查询后找到解决方案: 在tomcat8的startup.bat脚本中手动设置CATALINA_HOME为该tomcat的根目录 最终测试结果可以正常执行 同时不影响tomcat7的正常执行 总结由于tomcat启动脚本的机制,所以建议删除系统变量中的CATALINA_HOME,如果删除了之后还是有某个tomcat出现CATALINA_HOME问题无法启动,则可以给该tomcat手动设置CATALINA_HOME 本文已在掘金同步上传:CATALINA_HOME导致的tomcat无法正常启动问题 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |