ホームページ  >  記事  >  Java  >  Java でシステム コマンドを実行し、その出力をキャプチャするにはどうすればよいですか?

Java でシステム コマンドを実行し、その出力をキャプチャするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-31 00:03:29206ブラウズ

How to Execute System Commands in Java and Capture their Output?

Java でのシステム コマンドの実行

Java 内からシステム コマンドを実行すると、基盤となるオペレーティング システムと対話するための強力な方法が提供されます。これは、Java アプリケーションを外部ツールと統合する場合、またはシステムレベルのタスクを実行する場合に特に便利です。

Java でシステム コマンドを実行するための効果的なアプローチの 1 つは、Runtime.exec() メソッドを使用することです。これにより、別個のツールを起動できます。コマンドを実行するプロセス。コマンドの出力をキャプチャするには、InputStreamReader と BufferedReader を使用して標準出力ストリームを読み取ることができます。

これは、「uname -a」コマンドを実行し、その出力を次の場所に保存する方法を示す最適化された例です。 a String:

<code class="java">Runtime r = Runtime.getRuntime();
Process p = r.exec("uname -a");
p.waitFor();
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
StringBuilder output = new StringBuilder();

while ((line = b.readLine()) != null) {
  output.append(line);
}

b.close();

System.out.println(output.toString());</code>

このコードは、最初に Runtime オブジェクトを取得し、exec() メソッドを呼び出して「uname -a」コマンドを実行します。 p.waitFor() 呼び出しは、プロセスの実行が完了するまで待機します。次に、プロセスの標準出力から行を読み取る BufferedReader を作成します。各行は StringBuilder に追加され、出力全体が蓄積されます。最後に、BufferedReader が閉じられ、蓄積された出力が文字列として取得されます。

このアプローチを利用すると、Java アプリケーション内でシステム コマンドをシームレスに実行し、コード内からシステム ツールの機能を利用できます。

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

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