Java挪用linux shell劇本的辦法。本站提示廣大學習愛好者:(Java挪用linux shell劇本的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java挪用linux shell劇本的辦法正文
起首,我們須要增長用戶對該劇本的履行權限,即
String cmdstring = "chmod a+x test.sh";
Process proc = Runtime.getRuntime().exec(cmdstring);
proc.waitFor(); //壅塞,直到上述敕令履行完
cmdstring = "bash test.sh"; //這裡也能夠是ksh等
proc = Runtime.getRuntime().exec(cmdstring);
// 留意上面的操作
string ls_1;
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(proc.getInputStream());
while ( (ls_1=bufferedReader.readLine()) != null);
bufferedReader.close();
proc.waitFor();
為何要有下面那段操作呢?
緣由是:可履行法式的輸入能夠會比擬多,而運轉窗口的輸入緩沖區無限,會形成waitFor一向壅塞。處理的方法是,應用Java供給的Process類供給的getInputStream,getErrorStream辦法讓Java虛擬機截獲被挪用法式的尺度輸入、毛病輸入,在waitfor()敕令之前讀失落輸入緩沖區中的內容。
願望年夜家可以或許愛好本文,有疑問請給我留言。