zoukankan      html  css  js  c++  java
  • java调用shell命令及脚本

    shell脚本在处理文本及管理操作系统时强大且简单,
    将shell脚本结合到应用程序中则是一种快速实现的不错途径
    本文介绍使用java代码调用并执行shell

    我在 ~/bin/ 目录下写了jbossLogDelivery.sh,有两个功能
    {./jbossLogDelivery.sh list} 作用是输出jboss现有的日志列表,
    {./jbossLogDelivery.sh get logName youmail@163.com} 作用是将指定的日志发送到指定的邮箱

    我在一个web程序中打算整合这个脚本,以达到通过http get来操作脚本。
    下面是核心代码

    //推荐使用ProcessBuilder来创建处理进程,参数cmds是一个String数组,
    //网上流行的一种方式是runtime.getprocess,我自己测试执行脚本时目录有问题
    //按照上述脚本,输出日志列表功能cmds的值为{"jbossLogDelivery.sh","list"}
    //提取日志功能的cmds的值为{"jbossLogDelivery.sh","get","logname","youmail@csair.com"}
    ProcessBuilder processBd=new ProcessBuilder(cmds);
    //切换到脚本所在目录
    processBd.directory(new File(scriptPath)); //scriptPath = “~/bin/”;
    //开始执行
    process = processBd.start();
    //执行结果
    int status = process.waitFor();
    //读取脚本的输出结果
    br = new BufferedReader(new InputStreamReader(process.getInputStream()));
    //处理结果
    String line = "";
    while ((line =br.readLine())!=null) {
    resList.add(line);
    }

  • 相关阅读:
    Django(60)Django内置User模型源码分析及自定义User
    Django(59)验证和授权
    Django(58)viewsets视图集详解
    Django(57)Generic类视图
    正则表达式
    JMeter之检查点(JSON断言)
    JMeter之检查点(响应断言)
    JMeter之参数化(一)
    JMeter之一个简单的性能测试
    JMeter基础
  • 原文地址:https://www.cnblogs.com/surprizeFuture/p/5207255.html
Copyright © 2011-2022 走看看