繁体   English   中英

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

[英]Java: how to check if a program has been correctly launched?

我正在使用BaseX服务器开发一个小的Java jar应用程序,用于在file.xml中存储数据。 首先,在主程序启动之前,我需要正确启动和激活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”正确。 为什么?

如果启动后进程进入后台,则可以检查exitValue()为零。 其次,可以使用方法getErrorStream()getInputStream()将错误附加到标准输出。 并监视他们的错误消息。 也可以看看流火鸡模式。 如果不消耗其输出,某些进程可能会卡住。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM