如何使用 java.lang.ProcessBuilder 将输出重定向到 java 流

How to redirect the output to a java stream using java.lang.ProcessBuilder

ProcessBuilder 文档中提供了三种方法来重定向进程的输出。

问题:我想将流程输出重定向到流而不是 File,如何实现?

这是文档:https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

怎么做:

当您开始处理时,您将能够通过 Process 对象获得 OutputStream

ProcessBuilder 的文档中,您可以找到方法 Process start()

使用 Process 对象,您可以通过方法 abstract OutputStream getOutputStream().

获得 OutputStream

文档:

例子:

ProcessBuilder processBuilder = ProcessBuilder("/here/your/command1", "/here/your/command2");
Process process = processBuilder.start();
OutputStream outputSteeam = process.getOutputStream();

使用 Process 而不是 ProcessBuilder

下面是 Java API 运行时的示例:http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html

// Java runtime
Runtime runtime = Runtime.getRuntime();
// Command
String[] command = {"/bin/bash", "/my/file.sh"};
// Process
Process process = runtime.exec(command);

OutputStream out = process.getOutputStream();