ProcessBuilder类是J2SE 1.5在 Java .lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处理实现进程的控制管理。每个 ProcessBuilder 实例管理一个进程属性集。它的start() 方法利用这些属性创建一个新的Process实例。start() 方法可以从同一实例重复调用,以利用相同的或相关的属性创建新的子进程。

以java调用 python 为例
@SneakyThrows
public static void main(String[] args){
process Builder processBuilder = new ProcessBuilder();
processBuilder.command(List.of("H:\Program Files\python3.7\python.exe", "I:\ideaProject\paddle\main.py"));
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
@Cleanup
inputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
if (line.startsWith("[{'data':")) {
System.out.println(line.substring(0,line.lastIndexOf("}]"))+"}]");
break ;
}
}
int exitCode = process.waitFor();
System.out.println("exitCode = "+exitCode);
}
运行效果
