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

时间:2014-11-27 11:32:53

标签: java xml windows command-line command

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

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”是正确的。为什么?

1 个答案:

答案 0 :(得分:1)

如果进程在启动后进入后台,则可以将exitValue()检查为零。其次,您可以使用方法getErrorStream()getInputStream()来处理错误和标准输出。并监视它们的错误消息。看看流gobbler模式,它可能是有用的。如果没有消耗输出,某些进程可能会卡住。

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