利用Java 的Runtime.getRuntime() 從程式中執行命令提示字元命令時,您可能會遇到捕獲命令返回的輸出的困難。讓我們深入研究這個問題,並發現如何使用可靠的方法來檢索和列印所需的輸出。
在您的方法中,嘗試使用 System.out.println() 列印 Process 物件 proc 將不會產生任何有意義的結果結果。相反,您需要將 InputStream 從執行的命令傳輸到 BufferedReader 來存取並隨後列印輸出。
這是一個更新且功能齊全的程式碼片段:
Runtime rt = Runtime.getRuntime(); String[] commands = {"system.exe", "-get t"}; Process proc = rt.exec(commands); BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); // Read the output from the command System.out.println("Here is the standard output of the command:\n"); String s = null; while ((s = stdInput.readLine()) != null) { System.out.println(s); } // Read any errors from the attempted command System.out.println("Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { System.out.println(s); }
透過利用 BufferedReader ,您可以迭代讀取輸出行並將其顯示在程式中。這種方法提供了一種乾淨而有效的方法來處理標準輸出和執行命令中的潛在錯誤。
請參閱 Runtime.getRuntime() 的官方 Javadoc 以獲取全面的文檔和對 ProcessBuilder 等其他選項的見解,提供對流程處理的高級控制。
以上是如何使用 Java 的 Runtime.getRuntime() 擷取並列印命令列程式的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!