Java 启动的进程错误流为空

Java 启动的进程错误流为空,java,windows,process,stderr,Java,Windows,Process,Stderr,我试图通过java代码控制外部进程,如下所示: String[] Args = { mPath, "\"" + filePath + "\"" }; ProcessBuilder pb = new ProcessBuilder(Args); mProcess = pb.start(); 然后我想读一些来自《标准》的东西: mError = new BufferedReader(new InputStreamReader( mProcess.getErrorStream())); if

我试图通过java代码控制外部进程,如下所示:

String[] Args = { mPath, "\"" + filePath + "\"" };
ProcessBuilder pb = new ProcessBuilder(Args);
mProcess = pb.start();
然后我想读一些来自《标准》的东西:

mError = new BufferedReader(new InputStreamReader(
    mProcess.getErrorStream()));
if (mError.ready()){
    //read
}
并且ready()总是返回false

但在此之后:

pb.redirectError(Redirect.to(new File("c:\\err.log")));
所有错误消息都可以在err.log文件中找到。
我做错了什么?

试试下面的代码,它对我有用

 ProcessBuilder builder = new ProcessBuilder(ARGS);
 builder.redirectErrorStream(true); // setting  true  

…stdout上有任何内容吗?我没有看到您试图从错误streammError中读取。ready()为false,表示无需读取