java 执行shell脚本
时间: 2024-02-15 08:00:36 浏览: 42
在Java中执行Shell脚本可以使用`Runtime`类或`ProcessBuilder`类。下面是使用`Runtime`类执行Shell脚本的示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShellScriptExecutor {
public static void main(String[] args) {
try {
// 执行Shell脚本命令
String command = "sh /path/to/script.sh";
Process process = Runtime.getRuntime().exec(command);
// 获取Shell脚本输出结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待Shell脚本执行完成
int exitCode = process.waitFor();
System.out.println("Shell脚本执行完成,退出码:" + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
上述代码中,`/path/to/script.sh`是你要执行的Shell脚本的路径。你可以将实际的Shell脚本路径替换到代码中。
使用`ProcessBuilder`类执行Shell脚本的示例代码如下:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShellScriptExecutor {
public static void main(String[] args) {
try {
// 执行Shell脚本命令
ProcessBuilder processBuilder = new ProcessBuilder("sh", "/path/to/script.sh");
Process process = processBuilder.start();
// 获取Shell脚本输出结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待Shell脚本执行完成
int exitCode = process.waitFor();
System.out.println("Shell脚本执行完成,退出码:" + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
同样,你需要将实际的Shell脚本路径替换到代码中。