我知道这有点奇怪,但我正在尝试从 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: Cannot run program "foobar": error=2
有什么提示吗?
最佳答案
这是因为 java -version
在 Linux 上将信息打印到 STDERR。但是您正在捕获 STDOUT。
def proc = "java -version".execute()
proc.waitFor()
def version = proc.err.text
关于java - 从 linux 上的 groovy 脚本运行 java 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54887839/