关闭

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

标签: javaoutputinputcommandnullthread
3110人阅读 评论(0) 收藏 举报

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);

        }

    }

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45188次
    • 积分:585
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:2篇
    • 译文:0篇
    • 评论:4条
    最新评论