Я обновил заголовок, пожалуйста, смотрите обновление ниже по причине.

Я задал этот вопрос на Stackoverflow, но до сих пор не получил ответа.

Groovy: перенаправление stdout в файл не работает.

Я решил спросить здесь, так как думаю, что это может быть не проблема программирования, а скорее некоторая проблема с установкой Groovy, конфликтом версий и т.д.

Вот некоторые подробности.

Я написал очень простой скрипт для вывода строки в stdout с помощью System.out.println. Это работает, если я не хочу перенаправить вывод в файл. Интересно, что файл создан, но он пуст.

Я также попробовал простой скрипт «Hello, World» с Java (тот же JDK), и он хорошо работает.

Кто-то подтвердил в комментариях, что мой скрипт Groovy правильно перенаправляет на Windows и OS X.

Установка Groovy была свежей с последней версией. Я следовал всем инструкциям по установке. Я попытался запустить некоторые существующие сценарии, и все работает, кроме этого перенаправления.

Я понятия не имею, где искать сейчас. Пожалуйста помоги.

Groovy Version: 1.8.4 JVM: 1.7.0_02`
OS: Windows 7 64-bit Pro
GROOVY_HOME: C:\Program Files (x86)\Groovy\Groovy-1.8.4\
JAVA_HOME: C:\Program Files (x86)\Java\jdk1.7.0_02

ОБНОВИТЬ

Хорошо, я только что попробовал еще одну вещь, которая приходит на ум. У меня есть расширение .groovy связанное с исполняемым файлом groovy, поэтому я могу запускать сценарий без ввода groovy . Поэтому я сделал test.groovy > test.txt и он не работал.

Теперь я попробовал groovy test.groovy > test.txt и все работает!

Так что вопрос теперь проще. Почему перенаправление не работает, если я не использую groovy в командной строке?

Пожалуйста, также порекомендуйте, что мне делать с этим вопросом? Удалить версию SO?

ОБНОВЛЕНИЕ 2: Вот соответствующая запись реестра (HKCR\Groovy\shell\open\command):

"C:\Program Files (x86)\Groovy\Groovy-1.8.4\bin\groovy.exe" "%1" %*

0