EeBlog(テクニカルブログ)

第17回 プロセスの実行

今回はプロセスの実行を行います。
プロセスの実行とは簡単に言えばネイティブな他のプログラム(exe等)を呼び出すことです。
今回はWindowsの計算機をJavaから実行するサンプルです。
サンプルは単純ですが、Javaからネイティブなプログラムを実行できると非常に便利です。
Linuxのシェル、Dosのバッチファイル、JScriptまで実行できます。
getOutputStream()メソッドで出力を受け取ることもできます。

以下のサンプルは計算機の終了を待ちません。

public class Calc {
     public static void main(String[] args) {
         Process proc        = null;
         try {
             proc = Runtime.getRuntime().exec("calc");
             System.out.println("計算機の終了は待ちません。");
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 }

以下のサンプルは計算機の終了を待ちます。
バッチ処理などの順番が影響する処理を行うのに向いています。

public class Calc {
     public static void main(String[] args) {
         Process proc        = null;
         try {
             proc = Runtime.getRuntime().exec("calc");
             proc.waitFor();
             System.out.println("計算機の終了を待ちました。");
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 }

GCJを使うとJavaでもネイティブコードに変換できちゃうぞ!!
今日は真面目なコメント…..。