用Java写一个调用shell的工具类 
时间: 2023-03-19 21:21:54 浏览: 38
要用Java写一个调用shell的工具类,可以使用Java中的ProcessBuilder类来实现。
以下是一个示例代码:
```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShellUtil {
public static String executeShell(String command) throws IOException {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("bash", "-c", command);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder output = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
output.append(line).append("\n");
}
int exitCode;
try {
exitCode = process.waitFor();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new IOException("Interrupted while waiting for shell command to finish.", e);
}
if (exitCode != 0) {
throw new IOException(String.format("Shell command exited with non-zero exit code (%d):\n%s", exitCode, output));
}
return output.toString();
}
}
```
这个工具类中有一个executeShell方法,它接受一个命令字符串作为参数,并使用ProcessBuilder类来创建一个进程,执行该命令。该方法返回命令执行后的输出结果,如果命令执行失败,则会抛出一个IOException异常。在方法中,我们使用了Java中的标准输入输出流,读取进程的输出结果,并等待进程执行完毕。
相关推荐








