當嘗試從Java 應用程式執行外部程式並向其傳遞參數時,您可能會遇到以下情況:程式運行沒有任何錯誤,但無法執行其預期操作。
在您提供的範例程式碼中,您正在使用 Runtime.getRuntime().exec() 方法來執行外部程式。此方法採用字串陣列作為參數,其中第一個元素是要執行的命令,後續元素是傳遞給命令的參數。
中的問題您的程式碼是您沒有正確捕捉外部程式的輸出。要取得輸出並檢查程式的行為,您可以使用以下修改的程式碼:
<code class="java">Process process = new ProcessBuilder( "C:\Users\user\Desktop\program.exe", "C:\Users\user\Desktop\images.jpg", "C:\Users\user\Desktop\images2.txt" ) .start(); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; System.out.printf("Output of running %s is:", Arrays.toString(params)); while ((line = br.readLine()) != null) { System.out.println(line); }</code>
在此程式碼中,我們使用ProcessBuilder 類別建立一個新進程,該進程將執行外部程序。然後使用 start() 方法來啟動進程。
為了捕獲進程的輸出,我們從進程創建一個 InputStream,一個用於包裝 InputStream 的 InputStreamReader,以及一個用於從進程讀取行的 BufferedReader。 InputStreamReader.
然後,我們使用 BufferedReader 中的 readLine() 方法來讀取進程的每一行輸出。最後,使用 System.out.println() 語句列印輸出行。
透過使用此方法,您可以從 Java 執行外部程式並捕獲它們的輸出,包括它們可能產生的任何錯誤或訊息。然後,您可以使用此輸出來進一步處理或顯示結果。
以上是如何在 Java 中擷取使用額外參數執行的外部程式的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!