加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Java运行时进程不会“Grep”

发布时间:2020-12-13 19:07:57 所属栏目:Linux 来源:网络整理
导读:我正在java程序中从命令行执行一些命令,看来它不允许我使用“grep”?我通过删除“grep”部分测试了这个,命令运行得很好! 我的代码不起作用: String serviceL = "someService";Runtime rt = Runtime.getRuntime();Process proc = rt.exec("chkconfig --lis

我正在java程序中从命令行执行一些命令,看来它不允许我使用“grep”?我通过删除“grep”部分测试了这个,命令运行得很好!

我的代码不起作用:

String serviceL = "someService";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("chkconfig --list | grep " + serviceL);

有效的代码:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("chkconfig --list");

为什么是这样?是否有某种正确的方法或解决方法?我知道我可以解析整个输出,但我会发现从命令行更容易完成.谢谢.

最佳答案
你正在尝试使用管道,这是外壳的一个功能…你没有使用外壳;你直接执行chkconfig过程.

简单的解决方案是执行shell并让它完成所有事情:

Process proc = rt.exec("/bin/sh -c chkconfig --list | grep " + serviceL);

那就是说……为什么你要用油管吹?只需阅读chkconfig的输出并在java中自己进行匹配.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读