在linux上从groovy脚本运行java可执行文件

在linux上从groovy脚本运行java可执行文件,java,linux,groovy,Java,Linux,Groovy,我知道这有点奇怪,但我正在尝试从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上运行它时,它似乎什么都没做 如果我设置mycom

我知道这有点奇怪,但我正在尝试从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”
i get:java.io.IOException:无法运行程序“foobar”:错误=2


有什么提示吗?

这是因为
java-version
将信息打印到Linux上的STDERR。但你是在抓捕STDOUT

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

这是因为
java-version
将信息打印到Linux上的STDERR。但你是在抓捕STDOUT

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

它似乎什么也没做,还是有错误?当您在shell中执行该命令时,在目标Linux机器上会发生什么?找到java可执行文件了吗?它什么也不做。我认为找到java是因为如果我设置mycommand=“foobar”,我会遇到一个java.io.IOException:无法运行程序“foobar”,它似乎什么都不做还是出现了错误?当您在shell中执行该命令时,在目标Linux机器上会发生什么?找到java可执行文件了吗?它什么也不做。我认为找到了java,因为如果我设置mycommand=“foobar”,就会出现java.io.IOException:无法运行程序“foobar”