在 Java 中,你可以使用 ProcessBuilder
和 Process
类来执行一个外部命令(如 echo
),并捕获其输出结果。以下是一个示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EchoOutput {
public static void main(String[] args) {
try {
// 创建一个 ProcessBuilder 对象,传入要执行的命令(echo)和参数(Hello, World!)
ProcessBuilder processBuilder = new ProcessBuilder("echo", "Hello, World!");
// 启动进程
Process process = processBuilder.start();
// 获取命令的输出流
InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 逐行读取命令的输出结果,并打印
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
// 等待进程执行完成
int exitCode = process.waitFor();
System.out.println("Exit code: " + exitCode);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
这个示例中,我们创建了一个 ProcessBuilder
对象来执行 echo
命令,并传入了参数 “Hello, World!”。然后我们启动进程,并获取其输出流。接下来,我们逐行读取输出结果,并将其打印到控制台。最后,我们等待进程执行完成,并打印退出代码。