【发布时间】:2018-01-29 17:54:48
【问题描述】:
我正在探索 Windows 10 上的 Groovy 以及何时使用
"java -version".execute().text
我没有得到任何输出,在检查错误输出时使用:
def pb = new ProcessBuilder("java -version").redirectErrorStream(true);
def result = pb.start()
println result.text
它去了:
Caught: java.io.IOException: Cannot run program "java -version": CreateProcess error=2, Den angivne fil blev ikke fundet
java.io.IOException: Cannot run program "java -version": CreateProcess error=2, Den angivne fil blev ikke fundet
at java_lang_ProcessBuilder$start$0.call(Unknown Source)
at test$_run_closure2.doCall(test.groovy:59)
at test.run(test.groovy:51)
Groovy 似乎完全忽略了 PATH,只在当前目录中搜索。例如,如果我在同一目录中创建一个批处理文件,Groovy 将运行它。但是,如果我尝试将任何参数传递给它,它就会失败。 Groovy 似乎将参数解释为文件名的一部分。
感觉 Groovy 要么非常无能,要么我以错误的方式处理这个问题......
我习惯于在 Ruby 中使用system("java -version"),那么在 Groovy 中执行此操作的惯用方式是什么?
【问题讨论】:
标签: java shell groovy processbuilder