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

标签 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 上运行时,它似乎什么都不做。

如果我设置 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/

相关文章:

java - 通过同步方法返回值同步块(synchronized block)的跨度

linux - Linux 未选择正确版本的 Ant

c++ - 编译文件时无法在ubuntu上找到一些boost库

java - 为什么我不能在 groovy 中将实现作为参数传递给采用其接口(interface)的方法?

security - Grails:加密查询参数,使用散列加密/解密 url 和隐藏字段中的参数

java - 使用 Spring Boot 用 groovy 解析日期

java - 在 Mac 中解码使用 base64 编码的文件

java - Coinbase API 测试买卖 API

java - 如何在 Java 中显示 N x N 随机数矩阵?

linux - 如何将两个文件(列)粘贴到第三个文件递增行+1?