java运行shell脚本重启es
时间: 2024-06-16 22:03:12 浏览: 180
在Java中运行Shell脚本可以使用`Runtime`类或`ProcessBuilder`类来实现。下面是一个简单的示例代码,演示如何使用Java运行Shell脚本来重启ES(Elasticsearch):
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RestartES {
public static void main(String[] args) {
try {
// 创建ProcessBuilder对象,指定要执行的Shell命令
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "restart_es.sh");
// 设置工作目录(Shell脚本所在的目录)
pb.directory(new File("/path/to/script/directory"));
// 启动进程并等待执行完成
Process process = pb.start();
int exitCode = process.waitFor();
// 读取Shell命令的输出结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
if (exitCode == 0) {
System.out.println("ES重启成功!");
} else {
System.out.println("ES重启失败!");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
上述代码中,`"/bin/bash"`是Shell的解释器,`"restart_es.sh"`是要执行的Shell脚本文件。你需要将`/path/to/script/directory`替换为实际的脚本文件所在的目录。
请注意,运行Shell脚本需要确保Java程序对该脚本文件具有执行权限。你可以使用`chmod +x restart_es.sh`命令为脚本文件添加执行权限。
阅读全文