在Java中可以使用ProcessBuilder
類來調用shell腳本。以下是一個示例代碼:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShellScriptExample {
public static void main(String[] args) {
try {
// 創建ProcessBuilder對象并指定要執行的命令
ProcessBuilder processBuilder = new ProcessBuilder("/bin/sh", "/path/to/script.sh");
// 設置工作目錄(可選)
processBuilder.directory(new File("/path/to/directory"));
// 啟動命令并獲取進程對象
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();
if (exitCode == 0) {
System.out.println("命令執行成功");
} else {
System.out.println("命令執行失敗");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
在上述代碼中,我們使用ProcessBuilder
類設置要執行的命令和工作目錄。然后,我們使用start()
方法啟動命令并獲取進程對象。通過getInputStream()
方法可以獲取命令的輸出流,我們可以通過讀取該流來獲取命令的輸出。
最后,我們使用waitFor()
方法等待命令執行完畢,并獲取命令的退出碼。根據退出碼的值,我們可以判斷命令是否執行成功。
請注意,以上示例中的命令路徑和工作目錄應根據實際情況進行修改。