Redirect Runtime.getRuntime().exec() output with System.setOut();
2022-09-01 22:34:59
我有一个程序测试.java:
import java.io.*;
public class Test {
public static void main(String[] args) throws Exception {
System.setOut(new PrintStream(new FileOutputStream("test.txt")));
System.out.println("HelloWorld1");
Runtime.getRuntime().exec("echo HelloWorld2");
}
}
这应该将HelloWorld1和HelloWorld2打印到文件文本中.txt。但是,当我查看文件时,我只看到HelloWorld1。
HelloWorld2去哪儿了?它消失在稀薄的空气中了吗?
假设我想重定向HelloWorld2进行测试.txt。我不能只是在命令中添加“>>test.txt”,因为我会得到一个文件已经打开的错误。那么我该怎么做呢?