2012-03-09 74 views
5

我不知道它是否可行,但我想看看我的.bat文件在Java中的響應。獲得Java中命令行的響應

或者我可以看到一切都進展順利的布爾值!如果有一些錯誤,我可以看到Java中的錯誤。

感謝

+0

你的問題是不太清楚。你在談論從Java程序打印到控制檯嗎? (使用System.out.println())。我不確定.bat文件在哪裏。 – 2012-03-09 14:58:28

+0

對不起,我正在Windows命令行中運行.bat文件。但是我正在爲用戶構建一個程序,所以它不是僅運行bat文件的最佳方式,用戶也不會收到任何反饋。我希望現在更清楚! – Gynnad 2012-03-09 15:23:56

回答

2

看看這些代碼示例通過Java執行shell命令:Execute an external program

的代碼上面的例子不能利用ProcessBuilder,因此不限於Java的1.5及以上

+0

謝謝,有很多代碼對我來說非常有用! – Gynnad 2012-03-12 10:36:57

5

您需要使用ProcessBuilder運行它(只要您運行Java 1.5或以上,如果不檢查亞歷克斯的答案)

如果執行:

Process process = new ProcessBuilder("mybat.bat").command(); 

隨着Process你可以打電話

InputStream errorStream = process.getErrorStream(); 

你將捕獲從bat到stderr的輸出。

您還可以使用getOutputStream()進程獲取sdtout或使用exitCode()檢查返回碼。

+0

ProcessBuilder方法是要求一個字符串數組,如果我在那裏使用bat文件將無法工作。 – Gynnad 2012-03-12 08:06:41

+0

@Gynnad你是什麼意思使用bat文件?我傳遞了一個描述bat文件的字符串(bat文件的路徑,或者如果它在系統路徑上,那麼就是bat文件名)。在ProcessBuilder的文檔(答案中提供了鏈接)中對其進行了很好的描述。如果您使用的是Java 1.5或更高版本,則應該使用ProcessBuilder。 – zode64 2012-03-12 15:47:53