Я не понял, почему вы сказали в комментарии Евгению Кулешову, что даже java.exe этого не сделает.
Вы должны быть осторожны, чтобы перенаправить как выходные, так и ошибочные выходные потоки.Обычно при отправке данных на консольный вывод в Java «нормальный» консольный журнал отправляется на System.out
, а ошибки - на System.err
.DOS cmd обрабатывает это двумя разными потоками.В этом случае вам нужно либо перенаправить поток ошибок в другой файл, например
java.exe -cp .;Server.jar;Util.jar com.manage.Program %1 > log.log 2> err.log
, либо объединить его в тот же файл, выполнив
java.exe -cp .;Server.jar;Util.jar com.manage.Program %1 > log.log 2>&1
. У нас естьта же проблема при использовании команды start javaw
.Мы используем его только в производственной среде и используем приведенный выше java.exe при тестировании.
Конечно, лучшим способом было бы не выводить данные на консоль, что является наилучшей практикой, но кто это делает?;)