Java 执行 Linux 命令并获取结果:ProcessBuilder 使用指南
在 Java 中,可以使用 ProcessBuilder 类来执行 Linux 命令并返回结果。下面是一个示例代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExecuteCommand {
public static void main(String[] args) {
String command = "ls -l";
try {
// 创建进程构建器,并设置要执行的命令
ProcessBuilder processBuilder = new ProcessBuilder(command.split(" "));
// 设置工作目录(可选)
processBuilder.directory("/path/to/directory");
// 启动进程
Process process = processBuilder.start();
// 获取命令执行结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
StringBuilder output = new StringBuilder();
while ((line = reader.readLine()) != null) {
output.append(line).append("\n");
}
// 等待命令执行完毕
int exitCode = process.waitFor();
// 打印命令执行结果
if (exitCode == 0) {
System.out.println("Command executed successfully");
System.out.println("Output:
" + output.toString());
} else {
System.out.println("Command execution failed");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
上述代码中,我们使用 ProcessBuilder 类创建一个进程构建器,并通过 start() 方法启动进程。然后,我们使用 BufferedReader 从进程的输入流中读取命令执行结果。最后,我们使用 waitFor() 方法等待命令执行完毕,并获取命令的退出码来判断命令是否执行成功。
原文地址: https://www.cveoy.top/t/topic/o9Ib 著作权归作者所有。请勿转载和采集!