Java:如何检查程序是否正确启动?

我正在使用BaseX服务器为file.xml中的存储数据开发一个小的Java jar应用程序。 在开始之前,在主程序启动之前,我需要Basex服务器正确启动和激活。 所以这就是我所做的:

Runtime runtime = Runtime.getRuntime(); if (isWindows(os)) { Process server = runtime.exec("cmd /C basexserver.bat"); System.out.println(server.waitFor()); } else { if (isLinux(os)) { runtime.exec("basexserver"); } } 

检查BaseXServer是否正确运行我试图检查waitFor方法返回的值,如果这个值等于0,则命令成功执行,而如果返回值大于0,则发生错误。 问题是这个方法总是返回1,但是命令“basexserver.bat”是正确的。 为什么?

如果进程在启动后进入后台,可以检查exitValue()为零。 其次,你可以用方法getErrorStream()getInputStream()getErrorStream()错误和标准输出。 并监视他们的错误消息。 看看流氓的模式也可以是有用的。 如果输出未被消耗,某些进程可能卡住。

https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html http://www.javaworld.com/article/2071275/core-java/when-runtime-exec– -won-t.html