jdk1.8环境下写一个可以入参为命令数组,可以执行多条Linux命令,并将所有输出结果以List形式返回的方法
时间: 2024-02-24 18:59:35 浏览: 17
下面是一个接受命令数组作为参数的示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class CommandExecutor {
public static List<String> executeCommands(String[] commands) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder(commands);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
List<String> output = new ArrayList<>();
String line;
while ((line = reader.readLine()) != null) {
output.add(line);
}
int exitCode = process.waitFor();
if (exitCode != 0) {
throw new RuntimeException("Command execution failed with exit code " + exitCode);
}
return output;
}
}
```
这个方法的使用方法与上面的示例相同,唯一的区别是它接受一个命令数组作为参数。