ホームページ >Java >&#&チュートリアル >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 サイトの他の関連記事を参照してください。