• Runtime和Process


    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();
                }
            }
        }
  • 相关阅读:
    (转)贝叶斯推理及应用
    (转)zero copy原理
    (转)c指针问题
    (转)c++ new/delete,new[]/delete[]原理解析
    (转)Spring AOP编程原理、Demo
    (转)spring IOC、DI理解
    Django小例子 – 模型数据的模板呈现
    初探Django Admin(一)
    Windows7下搭建Django运行环境
    初探Django线程发送邮件
  • 原文地址:https://www.cnblogs.com/jiktiv123/p/7692229.html
Copyright © 2020-2023  润新知