在Java中,你可以使用Runtime
類或ProcessBuilder
類來在命令行中執行腳本。這里有兩個示例:
示例1:使用Runtime類
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ExecuteScript {
public static void main(String[] args) {
try {
// 替換為你的腳本文件路徑
String scriptPath = "/path/to/your/script.sh";
// 使用Runtime類執行腳本
Process process = Runtime.getRuntime().exec(new String[]{"bash", scriptPath});
// 讀取腳本的輸出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待腳本執行完成
int exitCode = process.waitFor();
System.out.println("腳本執行完成,退出代碼:" + exitCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}
示例2:使用ProcessBuilder類
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class ExecuteScript {
public static void main(String[] args) {
try {
// 替換為你的腳本文件路徑
String scriptPath = "/path/to/your/script.sh";
// 使用ProcessBuilder類執行腳本
ProcessBuilder processBuilder = new ProcessBuilder("bash", scriptPath);
processBuilder.redirectErrorStream(true); // 將錯誤輸出和標準輸出合并
Process process = processBuilder.start();
// 讀取腳本的輸出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待腳本執行完成
int exitCode = process.waitFor();
System.out.println("腳本執行完成,退出代碼:" + exitCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}
請注意,這些示例適用于Linux和macOS系統。如果你使用的是Windows系統,你需要將bash
替換為cmd.exe
或powershell
,并相應地修改腳本文件路徑。