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("myDir");
Process p = pb.start();
要利用一組明確的環境變量啓動進程,在添加環境變量以前,首先調用 Map.clear()。
2、API預覽
構造方法摘要
ProcessBuilder(List<String> command)
利用指定的操做系統程序和參數構造一個進程生成器。
ProcessBuilder(String... command)
利用指定的操做系統程序和參數構造一個進程生成器。
方法摘要
command()
返回此進程生成器的操做系統程序和參數。
command(List<String> command)
設置此進程生成器的操做系統程序和參數。
command(String... command)
設置此進程生成器的操做系統程序和參數。
directory()
返回此進程生成器的工做目錄。
directory(File directory)
設置此進程生成器的工做目錄。
environment()
返回此進程生成器環境的字符串映射視圖。
redirectErrorStream()
通知進程生成器是否合併標準錯誤和標準輸出。
redirectErrorStream(boolean redirectErrorStream)
設置此進程生成器的 redirectErrorStream 屬性。
start()
使用此進程生成器的屬性啓動一個新進程。
3、常見應用
若要使用ProcessBuilder建立一個進程,只須要建立ProcessBuilder的一個實例,指定該進程的名稱和所需參數。要執行此程序,調用該實例上的start()便可。下面上一個執行Windows記事本的例子。注意它將要編輯的文件名指定爲一個參數。
class PBDemo {
public
static
void main(String args[]) {
try {
ProcessBuilder proc =
new ProcessBuilder(
"notepad.exe",
"testfile");
proc.start();
}
catch (Exception e) {
System.out.println(
"Error executing notepad."); } } }