要在Java程序中调用Shell脚本,可以使用Runtime
类或ProcessBuilder
类来执行Shell命令。以下是两种常用的方法:
- 使用
Runtime
类:
import java.io.*;
public class ShellCommand {
public static void main(String[] args) {
try {
// 执行Shell命令
Process process = Runtime.getRuntime().exec("sh /path/to/your/script.sh");
// 获取命令输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
// 处理输出结果
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
将/path/to/your/script.sh
替换为你实际的Shell脚本路径。这段代码将执行指定的Shell脚本,并打印出其输出。
- 使用
ProcessBuilder
类:
import java.io.*;
public class ShellCommand {
public static void main(String[] args) {
try {
// 构建Shell命令
ProcessBuilder processBuilder = new ProcessBuilder("sh", "/path/to/your/script.sh");
processBuilder.redirectErrorStream(true);
// 执行Shell命令
Process process = processBuilder.start();
// 获取命令输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
// 处理输出结果
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
同样,将/path/to/your/script.sh
替换为你实际的Shell脚本路径。这段代码使用ProcessBuilder
类构建并执行Shell命令,并输出其结果。