在Java中,可以使用ProcessBuilder
類來執行shell命令并返回結果。
下面是一個例子:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExecuteShellCommand {
public static void main(String[] args) {
String command = "ls"; // 要執行的shell命令
try {
// 創建ProcessBuilder對象
ProcessBuilder processBuilder = new ProcessBuilder(command);
// 使用ProcessBuilder執行命令
Process process = processBuilder.start();
// 通過process的輸入流獲取命令執行結果
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("\n命令執行完畢,Exit Code : " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
在這個例子中,ProcessBuilder
對象被用來創建一個子進程來執行指定的命令。然后,通過getInputStream()
方法獲取命令執行結果的輸入流,并通過BufferedReader
讀取輸出。最后,使用waitFor()
方法等待命令執行完成,并獲取命令的退出碼。
上述例子中,執行的是ls
命令,如果要執行其他命令,只需要將command
變量替換為所需的命令即可。