linux java 输出_使用Java在Linux中执行命令并获取输出

本文介绍了一种在Linux环境中使用Groovy执行命令并获取输出的方法。通过`Runtime.getRuntime().exec()`来执行命令,如`uname -a`,但遇到问题在于管道操作(如`awk`和`cut`)似乎没有正确工作,导致空输出。代码示例展示了如何创建一个Groovy类`Infa9CommandExecUtil`,该类包含一个用于获取命令输出的方法。尽管`uname -a`命令成功执行并返回了输出,但是当尝试使用管道进行处理时(如`awk '{print $2}'`和`cut -d ' ' -f 2`),输出为空,且退出值为1,表明命令执行可能存在问题。
摘要由CSDN通过智能技术生成

我正在使用Groovy在我的Linux机器上执行命令并返回输出,但是我无法以|某种方式使用管道(我认为),或者它可能没有在等待命令完成。

有什么问题或我的代码中缺少什么?

我的调用函数:

def test()

{

String result="N"

HashMap params = IntermediateResults.get("userparams")

Map env=AppContext.get(AppCtxProperties.environmentVariables)

def fClass = new GroovyClassLoader().parseClass( new File( 'plugins/infa9/Infa9CommandExecUtil.groovy' ) )

List frows=["uname -a",

"uname -a | awk '{print\$2}'",

"uname -a | cut -d ' ' -f 2"]

List resultRows = fClass.newInstance().fetchCommandOutput( params, env, frows )

return result

}

Infa9CommandExecUtil.groovy 文件内容(更新:添加了exitVal println):

package infa9

import java.io.BufferedReader;

public class Infa9CommandExecUtil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值