ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", command);
时间: 2024-09-23 12:13:43 浏览: 37
java代码中调用linux/unix命令
5星 · 资源好评率100%
ProcessBuilder 是 Java 中的一个类,它用于构建代表外部进程执行命令的对象。当你创建 `ProcessBuilder` 的实例并传入一系列参数(如 "/bin/bash" 和 "-c" 后面跟随的命令),你可以后续调用它的 start() 方法来启动一个新的操作系统进程。
在这个例子中:
- "/bin/bash" 指定了要使用的 shell,通常在 Unix 系统中它是 Bash shell。
- "-c" 是一个标志,告诉 Bash 执行紧随其后的字符串作为单条命令。
- "command" 是一个字符串,包含了实际需要执行的操作,例如运行某个脚本、执行系统命令等。
通过这种方式,Java 程序可以在安全沙箱内间接地控制和管理外部程序,而无需直接获取文件描述符或处理进程的复杂细节。比如:
```java
String command = "ls -l";
ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", command);
try (Process process = processBuilder.start()) {
// 读取标准输出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
```
阅读全文