首页 > 解决方案 > 从 linux 上的 groovy 脚本运行 java 可执行文件

问题描述

我知道这有点奇怪,但我正在尝试从 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”:错误=2

有什么提示吗?

标签: javalinuxgroovy

解决方案


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

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

推荐阅读