0
在下面的代碼中,我正在執行一個java程序Newsworthy_CA。 該程序打印Newsworthy_CA程序的輸出,但我面臨的困難是僅在完成執行Newsworthy_CA程序後打印整個輸出。 但是我需要在程序執行時同時打印輸出。打印程序的輸出同時運行
此外,我需要child.waitFor()從繼續停止程序,如果發生任何錯誤。
請爲我的要求建議我一些好主意。提前致謝。
注:我在Java的
command = "java Newsworthy_CA";
Process child4 = Runtime.getRuntime().exec(command);
try{
c= child4.waitFor();
} catch (Exception ex){ex.printStackTrace();}
if (c!=0){
System.out.println("Error Occurred in ("+command+"): "+c);
InputStream in4 = child4.getErrorStream();
while ((c = in4.read()) != -1) {
System.out.print((char)c);
}
in4.close();
return;
}
InputStream in4 = child4.getInputStream();
while ((c = in4.read()) != -1) {
System.out.print((char)c);
}
in4.close();
是的......但我想知道是否像往常一樣,waitFor()函數的功能如果我照你說的那樣操作....? – LGAP 2010-08-10 17:35:00
由於waitFor()的javadoc表示,在繼續之前,它將等待Process對象終止(如有必要)。 所以是的,你可以並行地執行其他代碼(你聲明的目標),如果進程沒有完成,你等待waitFor(),它就會等待。 順便說一下,你幾乎可以肯定Process完成了,因爲你等待Process的標準輸出流終止。也就是說,沒有錯誤條件,你將在while(in4.read())循環中,直到進程終止。 – RonU 2010-08-10 22:38:11