package t0;
public class TestOpenWeb {
public static void main(String args[]) {
try {
ProcessBuilder proc = new ProcessBuilder(
"C:\\Program Files\\Internet Explorer\\iexplore.exe",
"http://www.baidu.com/");
proc.start();
ProcessBuilder proc1 = new ProcessBuilder("E:\\BCompare.exe");
proc1.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
========================================================
【原】https://blog.csdn.net/zhoujing_0424/article/details/79917368
ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程
(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。
每个 ProcessBuilder 实例管理一个进程属性集。它的start() 方法利用这些属性创建一个新的
Process 实例。start() 方法可以从同一实例重复调用,以利用相同的或相关的属性创建新的子进程。
下面是一个使用修改过工作目录和环境启动进程的例子,并重定向标准输出和标准错误到自定义日志文件
ProcessBuilder pb =
new ProcessBuilder("myCommand", "myArg1", "myArg2");
//设置环境变量,初始值是当前进程环境的一个副本System.getenv()
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"));
File log = new File("log");
//redirectErrorStream 属性默认值为false,意思是子进程的标准输出和错误输出被发送给两个独立的流,
//这些流可以通过 Process.getInputStream() 和 Process.getErrorStream() 方法来访问。
//如果将值设置为 true,标准错误将与标准输出合并。这使得关联错误消息和相应的输出变得更容易。
//在此情况下,合并的数据可从 Process.getInputStream() 返回的流读取,
//而从 Process.getErrorStream() 返回的流读取将直接到达文件尾。
pb.redirectErrorStream(true);
pb.redirectOutput(Redirect.appendTo(log));
//启动进程
Process p = pb.start();
assert pb.redirectInput() == Redirect.PIPE;
//重定向标准输出到日志
assert pb.redirectOutput().file() == log;
assert p.getInputStream().read() == -1;
//构造方法
//利用指定的操作系统程序和参数构造一个进程生成器。
ProcessBuilder(List<String> command)
//利用指定的操作系统程序和参数构造一个进程生成器。
ProcessBuilder(String… command)
//方法
//返回此进程生成器的操作系统程序和参数。
command()
//设置此进程生成器的操作系统程序和参数。
command(List<String> command)
//设置此进程生成器的操作系统程序和参数。
command(String… command)
//返回此进程生成器的工作目录。
directory()
//设置此进程生成器的工作目录。
directory(File directory)
//返回此进程生成器环境的字符串映射视图。 environment方法获得运行进程的环境变量,得到一个Map,可以修改环境变量
environment()
//返回进程生成器是否合并标准错误和标准输出;true为合并,false为不合并
redirectErrorStream()
//设置此进程生成器的 redirectErrorStream 属性。默认值为false不合并
redirectErrorStream(boolean redirectErrorStream)
//使用此进程生成器的属性启动一个新进程。
start()
========================================================
【原】https://www.cnblogs.com/whatlonelytear/p/7885270.html
ProcessBuilder(XXX).start()和Runtime.exec(XXX)功能相同,主要优点在使用过程中感受有:
原文:https://www.cnblogs.com/dengw125792/p/12617559.html