java的runtime执行linux命令管道符不生效需要注意的地方

参考链接:谭敏 18582562743《runtime无法执行grep_如何使管道使用Runtime.exec()?》https://blog.csdn.net/weixin_28736335/article/details/112051303

    @Test
    public void noticeRunTimeTest() throws IOException {
				//注意`/usr/bin/bash`和`-c`左右两边不许有空格
        String[] cmdArr = {"/usr/bin/bash", "-c", "ps -ef | grep test-app-1.0-SNAPSHOT.jar"};
        Process process = Runtime.getRuntime().exec(cmdArr, null, null);
        final BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line = "";
        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }

    }
## 输出
user         5367    5357  0 09:06 pts/1    00:00:15 java -jar test-app-1.0-SNAPSHOT.jar
user        19297   19268  0 10:44 ?        00:00:00 /usr/bin/bash -c  ps -ef | grep test-app-1.0-SNAPSHOT.jar
user        19299   19297  0 10:44 ?        00:00:00 grep test-app-1.0-SNAPSHOT.jar

注意/usr/bin/bash-c左右两边不许有空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值