ホームページ >Java >&#&チュートリアル >Java でコマンドライン出力を効率的にキャプチャするにはどうすればよいですか?

Java でコマンドライン出力を効率的にキャプチャするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-28 14:21:30487ブラウズ

How to Efficiently Capture Command Line Output in Java?

Java でのコマンド ライン出力の抽出

Java の Runtime クラスは、コマンド ライン プログラムを実行する機能を提供します。ただし、これらのコマンドによって生成された出力を取得するのは困難な作業となる場合があります。この記事では、Runtime クラスを使用してコマンド ライン プログラムから出力を抽出する方法を説明することで、この問題に対処します。

提供されたコードでは、出力ストリームが正しく読み取られていないことがエラー メッセージで示されています。これを修正するために、次のコードは堅牢なメソッドを示しています。

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);
}

このコードは、Runtime クラスを利用してコマンドを実行し、プロセスの標準入力ストリームとエラー ストリームの両方のリーダーを開きます。次に、出力とエラーの行を反復処理し、それらをコンソールに出力します。

より包括的な詳細と高度なオプションについては、ProcessBuilder の Java ドキュメントを参照してください: https://docs.oracle.com/javase/ 7/docs/api/java/lang/ProcessBuilder.html

以上がJava でコマンドライン出力を効率的にキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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