Javaで外部プロセスを起動

2018年9月17日月曜日

Java

t f B! P L

enter image description here

Javaで外部プロセスを起動し実行結果を取得する

サンプルコード

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)
スポンサーリンク

QooQ