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

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

DDD
リリース: 2024-12-25 05:28:16
オリジナル
601 人が閲覧しました

How to Capture Command Line Output Using Java's Runtime.getRuntime()?

Java Runtime.getRuntime(): 実行されたコマンドライン プログラムからの出力の抽出

問題:

Runtime.getRuntime() を使用してコマンドライン プログラムを実行する場合、コマンドによって返された出力は、Java プログラムではすぐには利用できません。この問題は、特定の出力を取得しようとすると発生し、返された値をさらに処理する必要があります。

解決策:

実行されたコマンドから出力を取得するには、次の手順が必要です:

  1. ランタイム オブジェクトの作成: 取得Runtime.getRuntime() を使用したランタイム インスタンス。
  2. コマンド配列を構築します。 必要な引数を含め、実行するコマンドを表す文字列の配列を定義します。
  3. コマンドを実行します: Runtime オブジェクトの exec メソッドを使用して、コマンドの実行を開始します。このメソッドは、Process オブジェクトを返します。
  4. 標準入力ストリームを抽出します。 Process オブジェクトの getInputStream メソッドを使用して、実行されたコマンドの標準入力を表す InputStream を取得します。
  5. 入力ストリームをラップします: の読み取りを容易にするために、InputStream をラップする BufferedReader を作成します。
  6. 出力を読み取ります: while ループを使用して BufferedReader から繰り返し行を読み取り、結果を String 変数に保存します。
  7. 印刷または処理出力: すべての出力が読み取られると、取得したデータを次のように印刷または処理できます。

追加の考慮事項:

  • 実行されたコマンドでエラーが生成された場合は、getErrorStream を使用して標準エラー ストリームを取得し、同様に処理することもできます。 .
  • 包括的な情報と、次のような代替アプローチについては、Javadoc ドキュメントを参照してください。 ProcessBuilder.

サンプル コード:

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 output and errors
System.out.println("Standard Output:");
String line;
while ((line = stdInput.readLine()) != null) {
    System.out.println(line);
}

System.out.println("Standard Error:");
while ((line = stdError.readLine()) != null) {
    System.out.println(line);
}
ログイン後にコピー

これらの手順に従い、提供されたコード例を実装すると、実行されたコマンド ラインの出力を効果的に取得できます。プログラムを作成し、それを Java アプリケーション内で利用します。

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

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