comands数组中第一个为exe可执行程序,其余为参数
public static boolean processBuilder(String[] commands) {
try {
ProcessBuilder processBuilder = new ProcessBuilder();
//设置执行的第三方程序(命令),第一个参数是命令,之后的是参数
processBuilder.command(commands);
//将标准输入流和错误输入流合并,通过标准输入流读取信息就可以拿到第三方程序输出的错误信息、正常信息
processBuilder.redirectErrorStream(true);
//启动一个进程
Process process = processBuilder.start();
//由于前边将错误和正常信息合并在输入流,只读取输入流
InputStream inputStream = process.getInputStream();
//将字节流转成字符流
InputStreamReader reader = new InputStreamReader(inputStream, "gbk");
//字符缓冲区
char[] chars = new char[1024];
int len = -1;
while ((len = reader.read(chars)) != -1) {
String string = new String(chars, 0, len);
System.out.println(string);
}
inputStream.close();
reader.close();
return true;
} catch (Exception e) {
return false;
}
}