java - 从 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
有什么提示吗?
解决方案
这是因为java -version
在 Linux 上将信息打印到 STDERR。但是您正在捕获 STDOUT。
def proc = "java -version".execute()
proc.waitFor()
def version = proc.err.text
推荐阅读
- javascript - 量角器,如果其他类具有相同的类名,如何获取元素
- android - 图层列表 - 边距底部
- python-2.x - 当我从用户那里获取输入并想要转换该输入时,系统错误
- java - 为什么 Java 中的 contains() 方法不能按预期工作?
- javascript - ReferenceError:未定义 twitterFetcher
- reporting-services - 无法加载文件或程序集 | 报表生成器 3.0
- php - jQuery Ajax 获取 json 返回结果
- java - java中的xslt转换期间属性名称使用了非法值
- hazelcast - Hazelcast localKeySet
- asp.net - 通过 post 正确接收嵌套对象