从Linux上的Groovy脚本运行Java可执行文件

时间:2019-02-26 14:32:41

标签: java linux groovy

我知道这有点奇怪,但是我试图从一个普通的脚本中运行Java可执行文件:

def mycommand = "java -version"
def env = System.getenv().collect { k, v -> "$k=$v" }
def mycommandOut = mycommand.execute(env,null).text
println mycommandOut

这在Windows上很好用,但是当我在Linux上运行时,它似乎什么也没做。

如果我设置了mycommand = "ls -la",它就像是一种魅力。

如果我设置了mycommand = "foobar",我得到:java.io.IOException:无法运行程序“ foobar”:error = 2

有任何提示吗?

1 个答案:

答案 0 :(得分:2)

这是因为java -version在Linux上将信息打印到STDERR。但是您正在捕获STDOUT。

def proc = "java -version".execute()
proc.waitFor()
def version = proc.err.text