通过java程序启动tomcat startup.bat

时间:2014-07-23 09:28:45

标签: java multithreading tomcat batch-file

我试图在java应用程序中通过startup.bat启动tomcat。我在ProcessBuilder中执行start命令。问题是startup.bat只在java中的所有线程(包括主线程)在主线程上使用Thread.sleep至少10秒完成后运行。另一个问题是在startup.bat开始运行后,System.exit(0)无效。甚至eclipse控制台中的停止按钮也不起作用。退出程序的唯一方法是手动关闭start up.bat窗口。我如何通过java优雅地启动和停止tomcat。我不想通过Tomcat API和jar嵌入tomcat。在我的项目文件夹中提取了tomcat 7。

code

2 个答案:

答案 0 :(得分:0)

尝试在Java ProcessBuilder中运行这些命令,确保执行workdir设置为$ tomcat / bin / folder。这应该在一个单独的过程中启动tomcat。

启动Tomcat cmd.exe /C catalina.bat start

停止Tomcat cmd.exe /C catalina.bat stop

您的主应用程序可以附加一个关闭钩子,其中运行stop命令,请参阅此主题。 Useful example of a shutdown hook in Java?

答案 1 :(得分:0)

使用它,对我有用

    Process child = Runtime.getRuntime().exec("c:\program files\tomcat\bin\startup.bat");