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关联


  • 相关阅读:
    Luogu P1067 多项式模拟
    关于事件流,事件冒泡和事件捕获
    JavaScript高程读书笔记
    前端面试题2017
    Bootstrap教程
    jquery实现JSON数据获取
    AJAX基本格式步骤
    【转】XMLHTTP中setRequestHeader参数问题
    warp()和wrapAll()区别
    append()和appendTo(),prepend()和prependTo()区别
  • 原文地址:https://www.cnblogs.com/xiaoyu1994/p/9103733.html
Copyright © 2011-2022 走看看