1. 程式人生 > >Runtime和Process

Runtime和Process

exce ack err for extend put 程序 reader art

private  void runByshcommand(String command) {
         try {
             System.out.println("開始執行命令.....");
             Process process =null;
             process = Runtime.getRuntime().exec(command);
             //不管是輸出流還是錯誤流,都容易造成阻塞,造成死循環。建議另外弄個線程,這樣不會對主程序造成影響。
             InputStream pro_in=process.getInputStream();//
得到終端窗口中輸出的信息 InputStream pro_err=process.getErrorStream();//得到終端窗口中輸出的錯誤流 new getOutputStreamThread(pro_in,"NORMAL").run();//調用start()方法,則會通過JVM找到run()方法 new getOutputStreamThread(pro_err,"ERROR").run(); process.waitFor(); // 銷毀子進程 process.destroy(); process
= null; System.out.println("命令執行成功"); } catch (Exception e) { e.printStackTrace(); } } public static class getOutputStreamThread extends Thread{ InputStream ins; String print_type; public getOutputStreamThread(InputStream is,String print_type){
this.ins=is; this.print_type=print_type; } public void run(){ String szstr=""; BufferedReader in=new BufferedReader(new InputStreamReader(ins)); try { while((szstr=in.readLine())!=null){ System.out.println(print_type+":"+szstr); } } catch (IOException e) { e.printStackTrace(); } } }

Runtime和Process