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 があります:
標準出力を読み取るには、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 サイトの他の関連記事を参照してください。