Я проверил, что перенаправление вывода работает с javaw:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Это означает, что если приложение java распечатывает что-либо через System.out или System.err, оно записывается в эти файлы, кактакже с использованием Java (без W).Особенно при запуске java JRE может записывать начальные ошибки (класс не найден) в канал вывода ошибок.В этом отношении важно знать об ошибках.Я предлагаю использовать перенаправление консоли в любом случае, если вызывается javaw.
В противном случае, если вы используете
start java .... 1>log.txt 2>err.txt
С командой запуска консоли windows перенаправление вывода консоли НЕ работает сЯва и с Джава тоже.
Объяснение, почему это так: я думаю, что javaw открывает внутренний процесс в ОС (адекватно с использованием класса java.lang.Process) и передает известное перенаправление вывода этому процессу.Если в командной строке перенаправление не задано, ничего не перенаправляется, и внутренний запущенный процесс для javaw не имеет консольных выходов.Поведение для java.lang.Process аналогично.Виртуальная машина может использовать это внутреннее поле и для javaw.
Если вы используете 'start', консоль windows создает новый процесс для окон для выполнения команды после запуска, но этот механизм не использует данное перенаправлениедля запущенного подпроцесса, к сожалению.