ホームページ > Java > &#&チュートリアル > Java の Runtime.getRuntime() を使用してコマンド ライン プログラムから出力をキャプチャして印刷するにはどうすればよいですか?

Java の Runtime.getRuntime() を使用してコマンド ライン プログラムから出力をキャプチャして印刷するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-21 07:38:09
オリジナル
919 人が閲覧しました

How Can I Capture and Print Output from Command Line Programs Using Java's Runtime.getRuntime()?

Java Runtime.getRuntime() を使用してコマンド ライン プログラムから出力を取得する

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 を利用することにより、を使用すると、出力行を繰り返し読み取り、プログラム内で表示できます。このアプローチは、標準出力と、実行されたコマンドからの潜在的なエラーの両方を処理するクリーンで効率的な方法を提供します。

包括的なドキュメントと、ProcessBuilder などの追加オプションについての洞察については、Runtime.getRuntime() の公式 Javadoc を参照してください。プロセス処理の高度な制御を提供します。

以上がJava の Runtime.getRuntime() を使用してコマンド ライン プログラムから出力をキャプチャして印刷するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート