Die STDOUT-Umleitung in eine Datei funktioniert nicht, wenn das Groovy-Skript direkt von der Befehlszeile aus ausgeführt wird (.groovy in PATHEXT)

1833
yuk

Ich habe den Titel aktualisiert, bitte sehen Sie unten den Update- Hinweis.

Ich habe diese Frage zu Stackoverflow gestellt, aber noch keine Antwort erhalten.

Groovy: stdout in eine Datei umleiten funktioniert nicht .

Ich habe mich entschlossen, hier zu fragen, da ich denke, dass dies möglicherweise kein Programmierproblem ist, sondern eher ein Problem mit der Groovy-Installation, dem Versionskonflikt usw.

Hier sind einige Details.

Ich habe ein sehr einfaches Skript geschrieben, um mit system.out.println einen String an stdout auszugeben. Es funktioniert, es sei denn, ich möchte die Ausgabe in eine Datei umleiten. Interessanterweise wird die Datei erstellt, aber sie ist leer.

Ich habe auch ein einfaches "Hello, World" -Skript mit Java (gleiches JDK) ausprobiert, und es funktioniert gut.

In Kommentaren wurde bestätigt, dass mein Groovy-Skript unter Windows und OS X ordnungsgemäß umgeleitet wird.

Die Groovy-Installation war frisch mit der neuesten Version. Ich habe alle Installationsanweisungen befolgt. Ich habe versucht, einige vorhandene Skripte auszuführen und alles funktioniert außer dieser Umleitung.

Ich habe keine Ahnung, wo ich jetzt suchen muss. Bitte helfen

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 

AKTUALISIEREN

OK, ich habe gerade eine weitere Sache ausprobiert. Ich habe eine .groovyErweiterung mit groovy ausführbarer Datei, so dass ich ein Skript ausführen kann, ohne einzugeben groovy. Also tat ich test.groovy > test.txtund es hat nicht funktioniert.

Jetzt habe ich es versucht groovy test.groovy > test.txtund es funktioniert!

Also ist die Frage jetzt einfacher. Warum funktioniert die Umleitung nicht, wenn ich sie nicht groovyin der Befehlszeile verwende?

Bitte empfehlen Sie auch, was ich mit dieser Frage machen soll. Löschen Sie die SO-Version?

UPDATE 2: Hier ist der zugehörige Registrierungsdatensatz (HKCR \ Groovy \ shell \ open \ command):

"C:\Program Files (x86)\Groovy\Groovy-1.8.4\bin\groovy.exe" "%1" %* 
0
Wenn Sie einfach `test.groovy 'ausführen, wird in der Konsole etwas angezeigt? Es kann möglich sein, dass das Ausführen über die Erweiterung die Standardausgabe verhindert. John vor 12 Jahren 0
@John: Ja, ohne Weiterleitung funktioniert alles gut. Ich sehe die Ausgabezeichenfolge in der Konsole. Vielen Dank yuk vor 12 Jahren 0

0 Antworten auf die Frage