Java的ProcessBuilder类

介绍

Java中的ProcessBuilder类用于创建进程,可以启动一个进程,并与之进行交互。ProcessBuilder类定义了以下一些重要的方法:

ProcessBuilder(String... command):创建一个新的ProcessBuilder对象,使用指定的命令和参数。
start():使用此ProcessBuilder创建一个新进程,并返回一个表示该进程的Process对象。
redirectErrorStream(boolean redirect):合并标准错误流和标准输出流,如果为true,则将标准错误流合并到标准输出流中,否则将标准错误流和标准输出流分别处理。
directory(File directory):设置此ProcessBuilder的工作目录,即运行进程时的当前目录。
environment():返回此ProcessBuilder的环境变量映射。
command(String... command):设置此ProcessBuilder的命令和参数,覆盖之前设置的命令和参数。
inheritIO():将此ProcessBuilder的进程的标准输出流和标准错误流与当前Java进程的标准输出流和标准错误流相同。
redirectInput(File file):将此ProcessBuilder的进程的标准输入流重定向到指定文件。
redirectOutput(File file):将此ProcessBuilder的进程的标准输出流重定向到指定文件。
通过ProcessBuilder类,我们可以启动并执行外部进程,例如执行命令行命令、启动其他程序等。同时,还可以通过该类的方法来控制和管理进程的输入输出流、环境变量等。

使用ProcessBuilder类启动并执行外部进程

可以使用ProcessBuilder类启动并执行外部进程,例如执行命令行命令、启动其他程序等。
下面是一个demo,展示了如何使用ProcessBuilder类执行命令行命令:

import java.io.IOException;
import java.util.*;
public class ProcessBuilderExample {
    public static void main(String[] args) {
        try {
            // 创建一个ProcessBuilder对象,使用指定的命令和参数
            ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "dir");
            
            // 设置此ProcessBuilder的工作目录,即运行进程时的当前目录
            pb.directory(new java.io.File("C:\\"));
            
            // 启动此ProcessBuilder创建的进程
            Process process = pb.start();
            
            // 读取进程的输出流
            Scanner scanner = new Scanner(process.getInputStream());
            while (scanner.hasNext()) {
                System.out.println(scanner.nextLine());
            }
            
            // 等待进程执行完毕
            int exitCode = process.waitFor();
            System.out.println("Process exited with code " + exitCode);
            
        } catch (IOException | InterruptedException ex) {
            System.err.println(ex);
        }
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值