ProcessBuilder
时间: 2023-09-23 14:07:37 浏览: 89
ProcessBuilder是Java中用于创建和启动新进程的类。它允许您指定要执行的命令及其参数,并可设置进程的工作目录、环境变量等属性。使用ProcessBuilder,您还可以将进程的输入和输出流连接到Java程序中的流,以便与进程进行交互。
以下是使用ProcessBuilder启动一个新进程的基本步骤:
1. 创建一个ProcessBuilder对象,指定要执行的命令及其参数。
2. 可选地设置进程的工作目录、环境变量等属性。
3. 调用start()方法启动进程。
4. 如果需要与进程进行交互,则可以通过调用Process对象的getInputStream()、getOutputStream()和getErrorStream()等方法获取进程的输入、输出和错误流,并将它们连接到Java程序中的流。
5. 等待进程执行完成,可以调用Process对象的waitFor()方法等待进程退出,并获取进程的退出码。
下面是一个简单的示例,演示如何使用ProcessBuilder启动一个命令行程序(如Windows下的cmd.exe),并将其输出打印到控制台:
```
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "dir");
pb.redirectErrorStream(true);
Process p = pb.start();
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
```
在这个示例中,我们创建了一个ProcessBuilder对象,指定要执行的命令为“cmd.exe /c dir”,即在Windows命令行下执行dir命令。我们还指定了将标准错误流合并到标准输出流中,以便可以通过一个流读取它们。然后我们调用start()方法启动进程,并获取其标准输出流的输入流。接下来,我们使用一个缓冲读取器逐行读取输出,并将其打印到控制台。最后,我们调用waitFor()方法等待进程退出,并获取其退出码。
阅读全文