使用Java 的Runtime.getRuntime() 檢索命令列輸出
為了利用Java 中命令列實用程式的強大功能,程式設計師常使用Runtime .getRuntime()。雖然這種方法可以輕鬆執行外部程序,但捕獲其輸出可能會令人困惑。本文揭示了使用 Runtime.getRuntime() 檢索命令列輸出的複雜度。
首先,考慮這個簡化的範例:
Runtime rt = Runtime.getRuntime(); String[] commands = {"system.exe", "-send", argument}; Process proc = rt.exec(commands);
預設情況下,Runtime.getRuntime().exec () 將傳回一個代表已執行程式的 Process 物件。但是,程式產生的輸出仍然無法透過 Process 物件本身存取。
要檢索輸出,需要深入研究與 Process 物件關聯的 InputStream。有兩個輸入流需要考慮:
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((s = stdInput.readLine()) != null) { System.out.println(s); }
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); while ((s = stdError.readLine()) != null) { System.out.println(s); }
以上是如何使用 Java 的 Runtime.getRuntime() 檢索命令列輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!