zoukankan      html  css  js  c++  java
  • 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();
                }
            }
        }
  • 相关阅读:
    二 、异常
    Java的基本概念
    Oracle case when
    oracle exists
    一 、前言
    location
    HTTP1.1初识
    数学学习笔记(持续更新中)
    [NOIP2017 提高组] 列队 题解
    [NOI2019] 回家路线 题解
  • 原文地址:https://www.cnblogs.com/jiktiv123/p/7692229.html
Copyright © 2011-2022 走看看