古い JVM に行き詰まっていない限りjava.lang.ProcessBuilder
、プロセスの指定、環境のセットアップ、生成、ファイル記述子の処理がはるかに簡単になります。
このクラスは、オペレーティング システム プロセスの作成に使用されます。
各ProcessBuilder
インスタンスは、プロセス属性のコレクションを管理します。このstart()
メソッドは、それらの属性を持つ新しいProcess
インスタンスを作成します。このstart()
メソッドを同じインスタンスから繰り返し呼び出して、同一または関連する属性を持つ新しいサブプロセスを作成できます。
...
デフォルトの作業ディレクトリと環境を使用する新しいプロセスを開始するのは簡単です:
Process p = new ProcessBuilder("myCommand", "myArg").start();
変更された作業ディレクトリと環境でプロセスを開始する例を次に示します。
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory(new File("myDir"));
Process p = pb.start();