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

原创 2006年05月23日 01:45:00

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

        }

    }

}

算法:In,Out,StdIn,StdOut类库

《算法(第四版 谢路云译)》是算法领域经典的参考书,其全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述,并提供了实际代码,而且这些Java代码实现采用了模块化...

stdout,stdin浅析

《The C programming Language》中这样解释stdin,stdout "The file pointers stdin and stdout are objects of typ...

JAVA实现实时Process,实时获取输出

如题,java实现实时Process,我这里采用ProcessBuilder类获取一个Process实例 具体看代码:RealtimeProcess.java import java.io.Buf...
  • Leocry
  • Leocry
  • 2015年07月13日 14:27
  • 5171

Java中Process类的使用与注意事项

(1)在项目开发中,经常会遇到调用其它程序功能的业务需求,在java中通常有两种实现方法Runtime runtime = Runtime.getRuntime(); Process p = runt...

Java重定向标准输入/输出

Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过Sys...

一起读nodejs(五)----进程(process)

本文是对nodejs0.8.9版本的api开发手册解读.nodejs网址     进程(process)      process对象是一个全局对象,它可以在任何地方被访问.它是一个EventEm...

linux shell 屏幕显示stdout stderr的同时 分别重定向到文件

I'm assuming you want to still see STDERR and STDOUT on the terminal. You could go for Josh Kelley's...

C语言I/O学习笔记(1)stdin,stdout和stderr以及重定向

C程序自动打开3个文件,标准输入,标准输出和标准错误输出。默认情况下分别指向键盘,显示器,显示器。 这里的文件指的是指向FILE的指针。FILE是stdio.h中定义的一种派生类型。FILE类型指针...
  • TTdave
  • TTdave
  • 2012年03月23日 17:42
  • 4793

验证daemon程序中setsid的作用以及重定向stdin、stdout、stderr的原因

daemon程序包括第一次fork、setsid、第二次fork、改变工作目录、关闭所有打开的描述符以及重定向stdin、stdout、stderr。 setsid发挥的作用是使得当前进程成为新会话的...

C++ stderr/stdout 重定向到文件

通常,stderr和stdout被用来输出内容显示到控制台,但是,有时候我们需要把这些信息写到指定的文件,方便随时查阅。最简单的实现方式就是,把 stderr/stdout 的输出重定向到文件。文章先...
  • cwqcwk1
  • cwqcwk1
  • 2015年06月21日 03:05
  • 4688
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中Process的stdout, stderr的重定向,自己想的,不知道有没有更好的办法
举报原因:
原因补充:

(最多只允许输入30个字)