打印运行时exec()OutputStream到控制台

打印运行时exec()OutputStream到控制台

问题描述:

我正在尝试获取由 exec()发起的进程 OutputStream 到控制台。怎么办呢?

I am trying to get the OutputStream of the Process initiated by exec() to the console. How can this be done?

这里有一些不完整的代码:

Here is some incomplete code:

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.Reader;

public class RuntimeTests
{
    public static void main(String[] args)
    {
        File path = new File("C:\\Dir\\Dir2");
        String command = "cmd /c dir";
        Reader rdr = null;
        PrintStream prtStrm = System.out;
        try
        {
            Runtime terminal = Runtime.getRuntime();

            OutputStream rtm = terminal.exec(command, null, path).getOutputStream();
            prtStrm = new PrintStream(rtm);
            prtStrm.println();
        } 
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}


在调用process.waitFor()

You need to start a new thread that would read terminal output stream and copy it to the console, after you call process.waitFor()