ホームページ  >  記事  >  Java  >  Java でシステム コマンドを実行し、出力をキャプチャする方法は?

Java でシステム コマンドを実行し、出力をキャプチャする方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 02:54:30767ブラウズ

How to Execute System Commands and Capture Output in Java?

Linux および BSD 用 Ja​​va でのシステム コマンドの実行

概要

Java は、ランタイム環境内からシステム コマンドを実行する機能を提供します。これは、基盤となるオペレーティング システム上でさまざまな操作を実行する場合に役立ちます。このガイドでは、Linux および BSD システムの Java でシステム コマンドを実行する方法について説明します。

問題

開発者は、Java プログラム内から uname -a コマンドを実行し、保存したいと考えています。文字列での出力。彼らが提供するコード スニペットはこれを実行しようとしますが、いくつかの問題が発生します。

解決策

Java でシステム コマンドを実行するには、Runtime.exec() メソッドを使用できます。このメソッドは、実行するコマンドを文字列として引数として受け取ります。コマンドが実行されると、コマンドの標準出力ストリームから出力を取得できます。

ここでは、una​​me -a を実行し、出力を文字列に保存する方法の例を示します。

<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 = "";

while ((line = b.readLine()) != null) {
  System.out.println(line);
}

b.close();</code>

このコードは最初に Runtime オブジェクトを作成します。次に、Runtime オブジェクトの exec() メソッドを使用して、uname -a コマンドを実行します。 exec() メソッドは、実行中のプロセスを表す Process オブジェクトを返します。

Process オブジェクトの入力ストリームから読み取ることで、コマンドからの出力を取得できます。コード スニペットでは、BufferedReader を使用して出力を 1 行ずつ読み取ります。その後、出力はデモンストレーション目的でコンソールに出力されます。

このアプローチに従うことで、Java 内から有効なシステム コマンドを実行し、その出力をプログラムのロジックで利用できます。

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

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