共計 1042 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Java 中調用 shell 腳本并傳遞參數,可以使用 ProcessBuilder
類。以下是一個示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ShellCommand {public static void main(String[] args) {
String command = "/path/to/your/script.sh";
String arg1 = "argument1";
String arg2 = "argument2";
try {ProcessBuilder processBuilder = new ProcessBuilder(command, arg1, arg2);
Process process = processBuilder.start();
// 讀取腳本輸出
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {System.out.println(line);
}
// 等待腳本執行完成
int exitCode = process.waitFor();
System.out.println("腳本執行完畢,退出碼:" + exitCode);
} catch (IOException e) {e.printStackTrace();
} catch (InterruptedException e) {e.printStackTrace();
}
}
}
在上面的示例中,我們首先定義了要執行的 shell 腳本的路徑和傳遞給腳本的參數。然后使用 ProcessBuilder
構建了一個進程,將腳本和參數作為構造參數傳遞給 ProcessBuilder
。接下來,我們啟動進程并獲取其輸出流,然后使用BufferedReader
讀取輸出。最后,我們使用 process.waitFor()
等待腳本執行完成,并獲取腳本的退出碼。
請注意,ProcessBuilder
的構造函數可以接受一個字符串數組,數組的每個元素代表一個參數。
丸趣 TV 網 – 提供最優質的資源集合!
正文完