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 中国語 Web サイトの他の関連記事を参照してください。