Перенаправить вывод Runtime.getRuntime (). Exec () с помощью System.setOut ();

У меня есть программа Test.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");
    }
}

Предполагается, что в файл text.txt будут выведены HelloWorld1 и HelloWorld2, однако когда я просматриваю файл, я вижу только HelloWorld1.

  1. Куда делся HelloWorld2? Он растворился в воздухе? ​​

  2. Допустим, я хочу также перенаправить HelloWorld2 на test.txt. Я не могу просто добавить в команду ">> test.txt", потому что получаю ошибку при открытии файла. Итак, как мне это сделать?

23
задан Leo Izen 19 April 2017 в 14:53
поделиться