我使用cygwin構建了一個.exe文件。它被稱爲ms.exe。我正在嘗試使用ProcessBuilder從Java運行它。我之前使用過ProcessBuilder來捕獲它的輸出。從Java運行cygwin編譯的程序
在命令窗口(cmd.exe)上,如果我運行ms.exe [ms-params]> output.txt。然後輸出包含
/cygdrive/c/my-path-to-ms.exe [msparams]
[程序輸出]
在命令窗口中,如果我沒有通過任何重定向,即> output.txt,那麼輸出只包含[程序輸出]。
請注意,我在我的PATH env變量下有%CYGWIN_HOME%/ bin。
調用帶ms.exe端的ProcessBuilder(不用其他任何異常),但作爲輸出我只得到
/cygdrive/c/my-path-to-ms.exe [msparams]
你如何從'Stream'中讀取?你有沒有檢查錯誤流以及標準輸出流? – 2013-03-25 17:13:53
我可以從process.getInputStream中讀取,但結果與單行相同。我簡化了代碼,只使用processBuilder.redierctOutput來寫出一個文件。該文件結束於同一行。我追求強制IoException和InterruptedException,但沒有。我的猜測是,當我從命令行運行時,涉及到bash。 – Susanta 2013-03-25 17:36:20