java Groovy:将stdout重定向到文件无效
我只是在学groovy。我有一个非常简单的脚本,用println
将一些文本输出到STDERR和STDOUT:
err = System.err
resultStr = "test to print"
err.println resultStr
println resultStr
如果在不重定向的情况下运行脚本,我会在输出中得到两次resultStr
字符串
如果我将输出重定向到一个带有test > test.txt
的文件,结果字符串会在输出(OK)test中出现一次。txt已创建(正常),但它是空的。我试着用System.out.println
代替println
得到同样的结果。我做错了什么
如果这很重要的话,我使用的是Windows 7。以防万一,我尝试重定向标准windows程序的输出,比如dir,它可以正常工作
Groovy版本:1.8.4 JVM:1.7.0_02
更新:我还尝试在java(相同的JVM)中创建一个简单的"Hello World"类。重定向确实有效。所以它应该是Groovy中的东西
更新2:在@socha23评论他可以在Windows 7下从同一个脚本成功重定向后,我认为问题不在于脚本,而在于Groovy安装、版本冲突或操作系统。所以我问了similar question on SuperUser(很抱歉交叉发帖,但我真的认为这是一个边缘问题)
然后我发现,如果直接以test.groovy > test.txt
的形式运行脚本,重定向将无法正常工作。但如果我运行groovy test.groovy > test.txt
,它会工作。我仍然希望理解这种行为,并在可能的情况下予以纠正。请访问SU问题。至于今天12月24日,仍然没有答案
我想现在很清楚,这不是一个编程问题。请建议我从这里删除它。这两个问题都是相互关联的
共 (0) 个答案