我有一些使用Java apache exec类运行外部进程的简单代码。缺少Windows中Java进程的命令行输出
Executor ex = new DefaultExecutor();
ex.setStreamHandler(new PumpStreamHandler(System.out, System.out, System.in));
CommandLine cl = new CommandLine(
"C:\\program.exe");
ex.execute(cl);
}
对于某些命令行程序,这是否运行正常并得到所有的程序的输出到“出”流而接受我自己的文成“在”流。但是,对于其他程序,该进程的输出是可见的,从命令行手动运行,但是当我通过java进程运行时,没有任何东西进来。
我想最终写入标准输入并检索和分析代码本身内的标准输出。
如果有我不知道的原因,为什么某些程序似乎在命令行上输出文本,但是当我将它们作为java进程运行时,我没有通过流接收任何东西?
这发生在Windows中。
也许你有这个问题的问题:http://stackoverflow.com/questions/27249101/windows-prevents-stdout-from-external-command-line-executions-to-be-redirected-t – radio 2014-12-02 12:09:23