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的使用,代码如下: