您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页ProcessBuilder调用脚本执行

ProcessBuilder调用脚本执行

来源:华拓科技网

最近在搞一些topic,需要用到ProcessBuilder去执行shell脚本,结果一直失败,报错如下:

/bin/bash: wget: command not found

贴上原先代码:

 
            ProcessBuilder pb = new ProcessBuilder("/bin/bash","-c",command);
            pb.redirectErrorStream(true); // 合并错误流到标准输出流

            Process process = pb.start();

            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            StringBuilder sb = new StringBuilder();
            while ((line =reader.readLine()) != null) {
                sb.append(line);
            }

            int exitCode = process.waitFor();

以上代码执行后报错。

排查思路:

1./bin/bash有问题,终端执行命令:echo $SHELL

我的命令行输出如下:/bin/zsh,修改ProcessBuilder的入参改为”/bin/zsh“,继续执行,报错。

2.ProcessBuilder有问题?尝试debug,发现命令传入没问题,问题还是回到/bin/bash

3.wget已经安装了,再命令行执行脚本毫无问题,但是到ProcessBuilder就报错。最后解决办法如下:

在终端执行如下命令行: which wget https:xxx,执行后输出"/usr/local/bin/wget"

修改ProcessBuilder的入参为/usr/local/bin/wget

基础用法:

  

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务