日期:2014-05-17  浏览次数:20763 次

关于getRuntime.exec() 来关闭关闭tomcat的问题
本帖最后由 alivefish0915 于 2013-11-12 16:17:13 编辑
原因:首先已经可以关闭和开启tomcat服务。CMD的执行方式是CATALINA_HOME\bin\startup.bat和shutdown.bat方式。但是当tomcat本身已经被关闭的时候,再次执行shutdown.bat会发现jvm一直开启,并且代码不再往下走了,通过cmd窗口执行很容易发现出现了连接失败的问题(显然tomcat已经是关闭状态),那么当这种情况发生的时候,怎么让程序继续往下面走,最好结束mian方法。

需求:tomcat下部署一个项目。在本地写个jar(类似第3方),通过项目执行一个jar命令来执行这个第3方关闭tomcat服务,然后处理一个逻辑。。。完成之后再开启tomcat。

注:需求已经实现,只是想知道当tomcat已经关闭,单独去执行第三方为什么这个jvm一直是开启状态,而剩下的代码不在执行,有什么方式可以解决这个问题
开启和关闭:Runtime.getRuntime.exec()方式
java

------解决方案--------------------
引用:
Quote: 引用:

是不是在等待输出,是一段阻塞代码,建议Runtime.getRuntime.exec() 加上超时和trycatch。



刚才通过线程来处理了。分别处理Procee p的getInputStream和getError...代码可以继续执行其他的逻辑,但是线程还是阻塞,无法终止,或者不知道该已怎么样的方式来让线程终止


卡在哪一句上,发出来下,看看API。
------解决方案--------------------
先查看下进程中是否有tomcat,没有就不用执行关闭了