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

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

Patricia Arquette
リリース: 2024-12-31 10:10:14
オリジナル
275 人が閲覧しました

How Can I Retrieve Command Line Output Using Java's Runtime.getRuntime()?

Java の Runtime.getRuntime() を使用したコマンド ライン出力の取得

Java 内のコマンド ライン ユーティリティの機能を利用するために、プログラマはランタイムを使用することがよくあります。 .getRuntime()。このアプローチでは外部プログラムを簡単に実行できますが、その出力のキャプチャは複雑になる可能性があります。この記事では、Runtime.getRuntime() を使用してコマンド ライン出力を取得する複雑さを解明します。

まず、次の単純化された例を考えてみましょう。

Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send", argument};
Process proc = rt.exec(commands);
ログイン後にコピー

デフォルトでは、Runtime.getRuntime().exec () は、実行されたプログラムを表す Process オブジェクトを返します。ただし、プログラムによって生成された出力には、Process オブジェクト自体からはアクセスできないままです。

出力を取得するには、Process オブジェクトに関連付けられた InputStreams を詳しく調べる必要があります。考慮すべき 2 つの InputStream があります:

  • proc.getInputStream(): このストリームは、実行されたプログラムの標準出力へのアクセスを提供します。
  • proc.getErrorStream(): このストリームは、 Program.

標準出力を読み取るには、BufferedReader オブジェクトを使用します。

BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
ログイン後にコピー

stdInput を通じて、readLine() メソッドを使用して出力を 1 行ずつ取得できます。

while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
ログイン後にコピー

エラーをキャプチャするには、次の同様のアプローチに従います。 proc.getErrorStream().

BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

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

これらのストリームをコードに組み込むことで、Runtime.getRuntime().

を介して実行されたコマンド ライン プログラムの出力を効果的に取得できます。

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

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