ProcessBuilder的使用(执行多行命令,实时获取日志)

本文介绍了如何使用Java的ProcessBuilder来执行多行命令,特别是在Windows和Linux环境下,以及如何实时获取执行过程中的日志。通过示例代码展示了在Windows下利用cmd和Linux下使用/bin/bash来封装命令,并利用ProcessBuilder实现多命令执行。同时,文章还讲解了如何实现日志的实时捕获以及将进程输出直接保存为文件的方法,注意设置输出重定向后,获取输入流会为空的情况。
摘要由CSDN通过智能技术生成

ProcessBuilder用来创建操作系统进程,可以在指定位置,执行指定命令。这里通过process实现java执行shell,python脚本的功能。

1.通过ProcessBuilder执行多行命令

由于需要在命令中设置Path,试了多种方式后,使用cmd/bash封装为一整个命令实现,其中windows环境下使用cmd,linux环境下使用/bin/bash。

windows代码如下:多行命令通过分号分割

List<String> commandList = new ArrayList<>();
commandList .add("cmd");
commandList .add("/c");
commandList .add("your command");
ProcessBuilder pb = new ProcessBuilder(commandList);

linux代码:

List<String> commandList = new ArrayList<>();
commandList .add("/bin/bash");
commandList .add("/c");
commandList .add("your command");
ProcessBuilder pb = new ProcessBuilder(commandList);

多个命令通过在list添加新元素即可,由ProcessBuilder自行拼接最终的命令。至此,可以创建同时执行多行命令的Process。

2.实时获取日志

此处较简单,只是对Process的API的使用,代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值