如何在groovy中将输出重定向到stderr?

tim*_*ney 29 java scripting groovy

我正在寻找一种方法将groovy脚本中的输出重定向到stderr:

catch(Exception e) {
    println "Want this to go to stderr"
}
Run Code Online (Sandbox Code Playgroud)

cod*_*Les 22

就在我的头顶,你不能做一些自我布线:

def printErr = System.err.&println
printErr("AHHH")
Run Code Online (Sandbox Code Playgroud)

但这有点手册


小智 19

另一个相当紧凑的替代方案是:

System.err << "Want this to go to stderr"
Run Code Online (Sandbox Code Playgroud)

或者您可以在脚本的顶部添加它

def err = System.err
...
err << "Want this to go to stderr"
Run Code Online (Sandbox Code Playgroud)

这就是我现在在我的groovy shell脚本中所做的事情


Dan*_*ton 18

Groovy可以访问JRE:

System.err.println "goes to stderr"
Run Code Online (Sandbox Code Playgroud)

虽然可能有更多的Groovy-fied方式......