2012-11-10 36 views
3

我試圖運行Java程序bash腳本文件,我用這種方式運行Java中的bash腳本:如何使用輸入

Runtime rt = Runtime.getRuntime(); 

try {   
    Process proc = rt.exec("THE PATH FILE");   
    BufferedReaderinput=newBufferedReader(newInputStreamReader(proc.getInputStream())); 
    String line=null; 
    while((line=input.readLine()) != null) { 
    System.out.println(line); 
    } 
} catch (IOException ex) { 
    System.out.println(ex.toString()); 
} 

但我在使用輸入我的bash腳本爲$ 1,當我從命令行運行時,我想在我的Java程序中使用它來獲取正確的輸出。 如何在我的Java程序中執行此操作?

+3

我不認爲這個問題是由[tag:JavaScript]標籤幫助的;編輯爲[tag:Java]。 –

+0

在你的bash腳本中使用$ 1意味着你閱讀了第一個參數。據我瞭解,你嘗試通過stdin輸入你的數據。 – devsnd

+0

[dup?](http://stackoverflow.com/questions/525212/how-to-run-unix-shell-script-from-java-code) –

回答

1

閱讀您的Java應用程序的輸入,然後啓動一個新的進程,看起來是這樣的:

bash myfile.sh arg[0] arg[1] arg[n] 
1

至於建議由麥克·湯姆森,你可以在命令行參數到你的Java應用程序,並通過他們到這個腳本文件就像這樣。

StringBuilder cmdLineArgs = new StringBuilder(); 

for(String arg:args){ //in case you may have variable number of arguments 
    cmdLineArgs.append(arg).append(" "); 
} 

現在通過在cmdLineArgs給腳本收集到的參數。

Process proc = rt.exec("YOUR SCRIPT " + cmdLineArgs.toString()); 
相關問題