Java中Process的stdout, stderr的重定向,自己想的,不知道有没有更好的办法

Process ps = RunTime.getRuntime().exec("Command");

InputStream out  = ps.getInputStream(); //获取进程的stdout,并作为输入

InputStream err = ps.getInputStream(); //获取进程的stderr,并作为输入

// 为了能同时输出out 与 err,起用两个线程

new Redirector(out, redirectOut).start();

new Redirector(err, redirectErr).start();

class Redirector extends Thread {

    DataInputStream input;

    PrintStream output;

    public Redirector (InputStream is, OutputStream os) {

        input = new DataInputStream (is);

        output = new PrintStream(os);

    }

    public run() {

        String line = null;

        while(((line = input.readLine()) != null) {

            output.println(line);

        }

    }

}

你可能感兴趣的:(java,thread,command,null,input,output)