Я только учусь заводить. У меня есть очень простой скрипт, который выводит некоторый текст в STDERR и STDOUT с помощью println
:
err = System.err
resultStr = "test to print"
err.println resultStr
println resultStr
Если я затем запускаю скрипт без перенаправления, я получаю строку resultStr
в выходных данных два раза.
Если я перенаправлю вывод в файл с test > test.txt
, результирующая строка появляется один раз в выводе (ОК), test.txt создается (ОК), но это пусто . Я пытался сделать System.out.println
вместо println
с тем же результатом. Что я делаю не так?
Если это важно, я на Windows 7. На всякий случай я попытался перенаправить вывод стандартных программ Windows, таких как dir, и это работает.
Groovy версия: 1.8.4 JVM: 1.7.0_02
ОБНОВЛЕНИЕ : я также пытался создать простой "Hello World" класс в Java (та же JVM). Перенаправление работает. Так что должно быть что-то в Groovy.
ОБНОВЛЕНИЕ 2 : После комментария от @ socha23 о том, что он может успешно перенаправить из того же сценария в Windows 7, я подумал, что проблема не в сценарии, а в установке Groovy, конфликтах версий или ОС , Поэтому я задал аналогичный вопрос для SuperUser (извините за перекрестную публикацию, но я действительно думал, что это пограничный вопрос).
Затем я обнаружил, что перенаправление не работает должным образом, если я запускаю сценарий напрямую как test.groovy > test.txt
. Но если я запускаю groovy test.groovy > test.txt
, это работает. Я все еще хотел бы понять это поведение и исправить, если это возможно. Пожалуйста, посетите вопрос SU. На сегодняшний день 12/24, это все еще без ответа.
Я думаю, теперь понятно, что это не вопрос программирования. Пожалуйста, порекомендуйте мне удалить его отсюда. Оба вопроса относятся друг к другу.