我希望将一个Java进程的输出重定向到父Java进程的标准输出。
可使用以下方式使用ProcessBuilder类:
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder("cmd");
processBuilder.directory(new File("C:"));
processBuilder.redirectErrorStream(true); // redirect error stream to output stream
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
}
我本来期望“cmd”命令的输出结果像:
Microsoft Windows [version 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
能够在运行java程序的DOS控制台中显示。 但是在DOS控制台中根本没有任何显示。
在其他讨论线程中,我看到使用BufferedReader类的解决方案:但是我希望将进程的输出直接显示在标准输出中,而不使用任何BufferedReader或“while读取循环”。这可行吗?
谢谢。
setOut(...)
、setIn(...)
和setErr(...)
。请注意,在翻译过程中不要改变原意,保持简洁易懂,不添加解释或其他内容。 - Hovercraft Full Of Eels