我试图从一个简单的 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/