springboot调用shell脚本
时间: 2023-04-19 08:04:07 浏览: 430
Spring Boot调用 Shell 脚本实现看门狗功能
可以使用Java中的ProcessBuilder类来调用shell脚本。具体步骤如下:
1. 创建ProcessBuilder对象,设置要执行的命令和参数。
2. 调用ProcessBuilder的start()方法启动进程。
3. 使用Process对象的getInputStream()、getOutputStream()和getErrorStream()方法获取进程的标准输入、输出和错误输出流。
4. 使用标准输入流向进程发送数据。
5. 使用标准输出流和错误输出流读取进程的输出。
6. 调用Process的waitFor()方法等待进程执行完毕。
7. 调用Process的exitValue()方法获取进程的退出状态。
示例代码如下:
```java
ProcessBuilder pb = new ProcessBuilder("/bin/sh", "/path/to/script.sh", "arg1", "arg2");
Process p = pb.start();
InputStream stdin = p.getInputStream();
InputStream stderr = p.getErrorStream();
OutputStream stdout = p.getOutputStream();
// 向进程发送数据
stdout.write("input data".getBytes());
stdout.flush();
// 读取进程的输出
byte[] buffer = new byte[1024];
int len;
while ((len = stdin.read(buffer)) != -1) {
System.out.println(new String(buffer, , len));
}
while ((len = stderr.read(buffer)) != -1) {
System.err.println(new String(buffer, , len));
}
// 等待进程执行完毕
int exitCode = p.waitFor();
System.out.println("exit code: " + exitCode);
```
注意:在调用ProcessBuilder的构造方法时,第一个参数应该是shell的可执行文件路径,一般为/bin/sh。第二个参数是要执行的脚本文件路径,后面的参数是脚本的参数。如果脚本没有参数,可以省略后面的参数。
阅读全文