簡體   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