溫馨提示×

java怎么調用shell腳本傳參數

小億
310
2023-10-11 17:52:32
欄目: 編程語言

在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的構造函數可以接受一個字符串數組,數組的每個元素代表一個參數。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女