服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

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

2021-08-27 16:28guan_yan_guan Tomcat

这篇文章主要介绍了Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案,需要的朋友可以参考下

即上篇通过将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直接闪退部署失败的快速解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.cnblogs.com/guanzhyan/archive/2018/01/17/8301965.html

延伸 · 阅读

精彩推荐