zoukankan      html  css  js  c++  java
  • java通过http服务执行shell命令

    服务端代码
    /**
    * 执行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 + " ";
    }
    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);

    }
    }

    客户端和服务端通过restful进行http关联


  • 相关阅读:
    论如何O(1)快速乘
    luogu3605晋升者计数
    分数规划小结
    洛谷 P1589 泥泞路 & 2019青岛市竞赛(贪心)
    洛谷 P3368 【模板】树状数组 2(区间加,单点查询)
    前缀和序列 & 差分序列
    洛谷 P3374 【模板】树状数组 1(单点加,区间和)
    2019青岛市程序设计竞赛游记
    0x3f3f3f3f 0xbfbfbfbf 等的原理及应用
    memset 初始化数组 & 实现原理
  • 原文地址:https://www.cnblogs.com/xiaoyu1994/p/9103733.html
Copyright © 2011-2022 走看看