スポンサーリンク
サンプルコード
Java で外部プロセスを起動し、
実行結果を標準出力またはエラー出力から取得するサンプルです。
/**
* 外部プロセスで「java -version」コマンドを実行し、現在の Javaのバージョンを取得するサンプル
*/
public static void main(String[] args) throws IOException {
Runtime runtime = Runtime.getRuntime();
// 半角スペース区切りの単位で、配列にコマンドを設定
String[] Command = { "java", "-version" };
// プロセスを実行する際のカレントディレクトリを設定する
File dir = new File("/usr/bin");
Process p = null;
try {
// プロセスを実行する
p = runtime.exec(Command, null, dir);
// プロセスの終了まで待機
p.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
return;
}
// 実行結果を取得する
// - 標準出力を取得する場合、Process#getErrorStream() を使用
// - エラー出力を取得する場合、Process#getErrorStream() を使用
// ※ java -version コマンドは実行結果がエラー出力に入るため、getErrorStream()を使用
InputStream is = p.getErrorStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while (true) {
// 実行結果から1行読み取る
String line = br.readLine();
if (line == null) {
break; // 全ての行を読み切ったら抜ける
} else {
// 実行結果を表示
System.out.println("line : " + line);
}
}
}
実行結果
line : java version "1.8.0_77"
line : Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
line : Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
0 件のコメント:
コメントを投稿