首頁 > Java > java教程 > 如何使用 Java 的 Runtime.getRuntime() 檢索命令列輸出?

如何使用 Java 的 Runtime.getRuntime() 檢索命令列輸出?

Patricia Arquette
發布: 2024-12-31 10:10:14
原創
275 人瀏覽過

How Can I Retrieve Command Line Output Using Java's Runtime.getRuntime()?

使用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。有兩個輸入流需要考慮:

  • proc.getInputStream():此流提供對執行程式的標準輸出的存取。
  • proc.getErrorStream():此流捕獲由proc.getErrorStream()
  • 產生的任何錯誤訊息或警告

要讀取標準輸出,請使用BufferedReader 物件:
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
登入後複製

透過stdInput,我們可以使用 readLine() 方法逐行擷取輸出。
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
登入後複製

要捕獲任何錯誤,請遵循類似的方法proc.getErrorStream().
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}
登入後複製

透過將這些流合併到程式碼中,您可以有效地檢索透過Runtime .getRuntime() 執行的命令列程式的輸出。

以上是如何使用 Java 的 Runtime.getRuntime() 檢索命令列輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板