欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

程序员文章站 2022-08-07 20:32:48
即上篇通过将web项目打成war包部署到tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的...

即上篇通过将web项目打成war包部署到tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~

将打好的war包拷贝到tomcat的webapps目录,然后在tomcat的bin目录找到startup.bat批处理文件,直接双击执行,结果运行几秒后直接闪退,顿时有种不好的预感,在浏览器访问web项目,结果连localhost:8080都无法访问,web项目未发布成功,一脸懵逼~

没有日志看不到为啥发布不成功额,想了想,可以稍微修改下startup.bat批处理文件,添加pause,这样运行结束只有按任意键才会关掉窗口(调试成功,在去掉pause)。

如果有错误信息,这时候会显示出来,可以再根据它的错误提示。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

此时,发现显示了一些环境变量,是不是环境变量没有配置引起的报错呢,就去检查了下,发现没有配置jre_home环境变量。配置后,发现还是闪退。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

也不清楚时环境变量引起的还是什么原因,没辙了,只能再找度娘了。

经过查资料,关于tomcat中startup.bat原理的相关内容,觉得很有帮助,摘取部分片段分享下,可能跟解决这个问题没关系,可略过~

startup.bat 解析

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

 验证catalina_home 环境变量是否设置,如果没有设置则通过catalina_home/bin目录下查找catalina.bat文件来确定catalina_home环境变量是否有效,如果没有找到catalina.bat 则goto end,结束。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

验证catalina.bat是否存在,如果不能存在则结束。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

判断启动 startup.bat 是否有参数,如果有参数,如果有有则赋值给 cmd_line_args变量。

通过call执行catalina.bat ,并传入参数。

其实startup.bat 的主要作用就是帮你找到catalina.bat并执行它。

好处:

如果你配置catalina_home的环境变量了,就可以把startup.bat 放到任何目录下,都可以启动tomcat了。

 好了,根据对startup.bat文件的解析,发现现在的问题跟环境变量没关系。瞬间有点失落。经验告诉我,可以查看日志撒。发现日志存在错误日志额。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

问题解决方法请参考:web项目打成war包部署到tomcat时报mysql access denied for user 'root'@'localhost' (using password: yes)错误解决方案

tomcat其他问题总结:

问题一:neither the java_home nor the jre_home environment variable is defined

tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat,只要在setclasspath.bat的开头声明环境变量(红色两行)就可以了,原因是后来较新版本安装完不会自动登记环境变量java_home,jre_home。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

这样在每次运行startup.bat时就自动注册了java_home,jre_home。

问题二:cannot find "d:\program files\apache-tomcat-7.0.52\bin\setclasspath.bat"

可能是catalina_home的值在某个地方被写死了,像我的绿色版tomcat在bin文件下多了一个setenv.bat的文件,打开一看果然是在这里面被写死了catalina_home的路径,这应该是为了某种原因被人后加上的设置文件,把这个文件删除之后,tomcat可以正常运行了。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

这种情况,可以去看catalina.bat中的配置,如下图,可能配置死的内容就在这个文件里。

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

总结

以上所述是小编给大家介绍的web项目打成war包部署tomcat时运行startup.bat直接闪退部署失败的快速解决方案,希望对大家有所帮助