runtime.exec不执行的问题

最近在使用 Springboot 执行日志抓取,在使用

String command = "tail -n 50 " + monitor.getErrorLogFilePath() + "|grep ERROR";
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(command);

这样的方式,执行错误日志抓取,发现指令,要么不执行,要么报错,要么无法按照描述抓取关键字日志。查了很多方式,最终

变更写法:
	Process process = runtime.exec(command);
为 
	Process process = runtime.exec(new String[]{"sh", "-c", command});

才得以正常运行。通过JDK源码得知,Runtime.exec最终是通过调用ProcessBuilder来真正执行操作的。那么 new String[]{"sh", "-c" , "command"},可能就是,手动指定命令行格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值