bat批处理文件启动Tomcat,报CATALINA_HOME环境错误问题的解决方法
用
启动Tomcat.bat去call startup.bat的问题。在用bat批处理文件启动Tomcat的时候遇到了一个问题,去bin目录下可以正常启动startup.bat,用命令行 cd bin目录下startup.bat 也可以正常启动Tomcat,但是在启动Tomcat.bat这个批处理文件下调用call startup.bat就会出现The CATALINA_HOME environment variable is not defined correctly This environment variable is needed to run this program这个错误

网上找了很多博客,发现有出现这种错,但是场景不一样(网上多数为,运行都运行不起,但是我的可以运行,只是批处理文件下运行不起),了解到一般通过startup.bat启动tomcat时流程是:
startup->catalina->setclasspath->catalina,遂去startup.bat下寻找出错原因。
根据错误信息,在startup.bat下,找到输出语句在这里

这里输出echo,说明判断"%CATALINA_HOME%\bin\catalina.bat"文件没有找到,我已经在startup.bat文件最上方设置了CATALINA_HOME的路径了,但是这里为什么会找不到catalina.bat文件呢,突然想到通过bat文件call 文件.bat调用其他bat文件路径会改变,于是在startup.bat文件第一行@echo off下一行添加了cd /D %~dp0这行代码(将%cd%定位到当前目录),再运行启动Tomcat.bat就OK了。
在使用批处理文件启动Tomcat时遇到错误,尽管在命令行下可以正常启动。分析了startup.bat的执行流程,发现批处理文件中设置的CATALINA_HOME路径在子bat文件中未被正确识别。通过在startup.bat开头添加定位当前目录的代码,成功解决了问题。
772

被折叠的 条评论
为什么被折叠?



