java - 从 Java 中启动 tomcat

标签 java tomcat process

我试图从一个简单的 java 片段中启动 tomcat,但它失败了。我查看了其他问题并复制了他们的答案,但没有一个奏效。

我正在做的是通过 Runtime 执行命令:

Process process = Runtime.getRuntime().exec("startup.bat");

请注意命令已简化,我通常会提供完全限定路径、CATALINA_HOME 和一些CATALINA_OPTS 的环境变量,并确保系统环境变量可用。

发生的情况是该进程正常启动,但是当它生成控制台时它立即关闭,就好像 Java 本身杀死了它一样。我尝试将 Thread.sleep(x) 添加到主线程以查看保持应用程序 Activity 是否会让 tomcat 运行但它没有,即使 Java 应用程序继续运行,控制台仍然死机。

我什至尝试通过 Ant 脚本运行 Tomcat,以查看委托(delegate)给 Ant 是否可行,但同样无济于事。即使尝试通过第三方 .bat 文件也不起作用

请不要推荐 Cargo、Maven 或类似工具,我目前正在寻找一种编程解决方案。

最佳答案

问题出在我运行 cmd 脚本的方式上。正确的做法是:

Runtime.getRuntime.exec("start /wait cmd /c catalina.bat run");

关于java - 从 Java 中启动 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47229319/

相关文章:

java - 为什么 StringBuffer 有 toStringCache 而 StringBuilder 没有?

javascript - tomcat无法访问javascript文件夹

tomcat - JAX-WS:来自另一个 Web 服务的 Web 服务调用

java gdb 运行时

Java 套接字 - 如何确定服务器端的数据类型?

java - 从公共(public)方法返回对象

java - 使用java中的ArrayUtils将字符串列表转换为单个字符串

java - 如何修改每个 web 应用程序的 tomcat web.xml 位置

java - 无法使用 ProcessBuilder 从 Java 执行 exe 文件

c# - 如何进行 Process.Start 阻塞调用?