ホームページ  >  記事  >  Java  >  Java で追加パラメータを使用して実行された外部プログラムからの出力をキャプチャするにはどうすればよいですか?

Java で追加パラメータを使用して実行された外部プログラムからの出力をキャプチャするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 14:53:30731ブラウズ

How to Capture Output from External Programs Executed with Extra Parameters in Java?

Java で追加パラメータを使用して外部プログラムを実行する

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。