Javaで子プロセスを作成する方法
子プロセスの作成
javaのプログラムから子プロセスを作成する場合は、java.lang.Runtimeオブジェクトを使う。public static Runtime getRuntime()でRuntimeオブジェクトを作成し、public Process Runtime.exec()で子プロセスを実行する。
子プロセスの制御
public Process Runtime.exec()で返されるjava.lang.Processオブジェクトを介して子プロセスの制御を行う。子プロセスの終了を待つ、子プロセスの出力ストリームを取得する等を行える。
サンプル
envで設定した環境変数の下でcmdプログラムを実行する。子プロセスの標準出力は、outfileで示されるファイルにgzip形式で出力される。OutputStream os = new GZIPOutputStream(new FileOutputStream(outfile)); Runtime run = Runtime.getRuntime(); Process proc = run.exec(cmd,env); /* 子プロセスの標準出力はProcessの入力ストリームにリダイレクトされている。 */ InputStream is = proc.getInputStream(); byte[] buf = new byte[1024]; int len; while((len = is.read(buf))!=-1){ os.write(buf,0,len); } proc.waitFor(); os.close();