我想通過Java在我的Ubuntu機器上運行bash腳本。 bash腳本需要2個輸入作爲參數,我作爲一個數組傳遞 但是,它似乎沒有將數組[0]和數組[1]的值傳遞給bash腳本?無法將參數發送到來自java的bash腳本
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.omg.CORBA.portable.InputStream;
public class readBashScript {
public static void readBashScript() {
try {
String[] array = {"ys1","R"};
Process proc = Runtime.getRuntime().exec("var/www/red/marsh_webreset.sh /",array);
BufferedReader read = new BufferedReader(new InputStreamReader(
proc.getInputStream()));
try {
proc.waitFor();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
while (read.ready()) {
System.out.println(read.readLine());
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
我使用Runtime.exec來解決類似的問題。我認爲我的解決方案是直接在程序中包含參數來執行String – ControlAltDel 2014-09-29 18:58:29
推薦的方法是使用['ProcessBuilder'](http://docs.oracle.com/javase/7/docs/api/java/lang/ ProcessBuilder.html),儘管使用shellshock這似乎是一個非常冒險的代碼。 – 2014-09-29 18:59:39
當你直接在程序中說你的意思是在bash腳本中嗎?因爲我會從用戶的實時參數 – user3846091 2014-09-29 19:00:06