最新公告
  • 欢迎您光临码巴巴,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • java通过http服务执行shell命令

    1,首先呢,必须写一个可接受http协议的接口。

    2,如果只是需要在一台主机上单独建立一个这样得服务,那么可以搭建一个springboot工程,创建服务

    3,下面这些代码,可以当作工具类使用就好

    服务端代码
    /**
     * 执行shell命令
     * @param command 执行命令
     * @return
     */
    public String exeCommandByPath( String command){
        log.info("进入执行shell命令方法 执行命令:" + command);
        String returnString = "";
        Process pro = null;
        String[] cmds = { "/bin/sh", "-c", command };
        Runtime runTime = Runtime.getRuntime();
        if (runTime == null) {
            log.info("Create runtime false!");
        }
        try {
            pro = runTime.exec(cmds);
            BufferedReader input = new BufferedReader(new InputStreamReader(pro.getInputStream()));
            PrintWriter output = new PrintWriter(new OutputStreamWriter(pro.getOutputStream()));
            String line;
            while ((line = input.readLine()) != null) {
                returnString = returnString + line + "\n";
            }
            input.close();
            output.close();
            pro.destroy();
        } catch (Exception ex) {
            log.info("执行shell命令出现异常" + ex.getMessage());
        }
        log.info("执行shell命令方法结果" + returnString);
        return returnString;
    }
    
    客户端代码
    /**
     * 执行shell命令
     *
     * @param command 执行命令
     * @return
     */
    public   String exeCommandByPath(String command) throws Exception {
        Response response = null;
        try {
    
            Client client = ClientBuilder.newClient();
            WebTarget target = client.target(路径(http://.....)).queryParam("command", command); 
            client.property(ClientProperties.CONNECT_TIMEOUT, 2000);
            client.property(ClientProperties.READ_TIMEOUT, 10);
            response = target.request().get();
            if (response.getStatus() == 200) {
                String result = response.readEntity(String.class);
                log.error("执行shell命令时{}返回值", result);
                return result;
            } else {
                throw new Exception("执行shell命令时连接失败!");
            }
        } catch (Exception e) {
    
            log.error("执行shell命令时{}出现异常", command, e);
            throw new Exception("执行shell命令时{}" + command + "出现异常:" + e.getMessage());
        } finally {
            log.info("执行shell命令时{}", command);
    
        }
    }

     

    1. 本站所有资源来源于用户上传和网络,如有侵权请及时联系站长!

    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!

    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!

    5. 如有链接无法下载、失效或广告,请联系管理员处理!

    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

    7. 如遇到加密压缩包,默认解压密码为"mababa.xin",如遇到无法解压的请联系管理员!


    码巴巴-优质代码创造者 » java通过http服务执行shell命令

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    一个高级程序员模板开发平台
    问问管理员?

    发表评论

    • 44会员总数(位)
    • 92资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1479稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级