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."); } } }