Java 应用中启动外部程序

有时候,自己的 Java 应用会依赖一些外部程序,比如数据库,一些中间件,比如 redis,influxdb,等等。这样,就需要在 Java 应用启动时,检测这些外部程序的状态,如果这些程序没启动,就应该启动它们。

启动这些外部程序时,最好不要弹出 cmd 窗口,让其后台执行,这就需要使用 start /B,也不需要处理这些应用的标准输出和错误输出,就需要将输出重定向。

1 外部程序的输出重定向为 nul

为避免服务程序输出阻塞而影响正常运行,需要将将输出重定向。

创建一个 bat 脚本

cd /d %~dp0
start /B server.exe 1>nul 2>nul

这样程序会在后台运行,即使 Java 程序退出后也不会停止。

2 在 Java 中执行启动脚本

Runtime.getRuntime().exec("D:/xxxx/start.bat")

你可能感兴趣的:(Java,技术杂文)