• 利用java执行shell脚本


    BPMN中存在由系统执行的脚本任务,shell脚本任务也是该系统任务脚本中的一种,利用的也是由java执行shell脚本。

    代码中的ProcessBuilder类,为java.lang.ProcessBuilder。可以参考javaAPI或者博客https://blog.csdn.net/u013256816/article/details/54603910

    当然,也可以用java.lang.Runtime类的exec()方法执行shell脚本。

     1 package com.alphajuns;
     2 
     3 import org.junit.Test;
     4 
     5 import java.io.*;
     6 import java.util.ArrayList;
     7 import java.util.List;
     8 
     9 public class CMDCommandTest {
    10 
    11     @Test
    12     public void run() throws IOException {
    13         // 创建命令集合
    14         List<String> commandList = new ArrayList<String>();
    15         commandList.add("cmd");
    16         commandList.add("/c");  // 执行结束后关闭
    17         commandList.add("echo");
    18         commandList.add("hello");
    19         commandList.add("cmd");
    20         // ProcessBuilder是一个用于创建操作系统进程的类,它的start()方法用于启动一个进行
    21         ProcessBuilder processBuilder = new ProcessBuilder(commandList);
    22         // 启动进程
    23         Process process = processBuilder.start();
    24         // 解析输出
    25         String result = convertStreamToStr(process.getInputStream());
    26         System.out.println(result);
    27     }
    28 
    29     public String convertStreamToStr(InputStream is) throws IOException {
    30         if (is != null) {
    31             Writer writer = new StringWriter();
    32             char[] buffer = new char[1024];
    33             try {
    34                 Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    35                 int n;
    36                 while ((n = reader.read(buffer)) != -1) {
    37                     writer.write(buffer, 0, n);
    38                 }
    39             } catch (UnsupportedEncodingException e) {
    40                 e.printStackTrace();
    41             } catch (IOException e) {
    42                 e.printStackTrace();
    43             } finally {
    44                 is.close();
    45             }
    46             return writer.toString();
    47         } else {
    48             return "";
    49         }
    50     }
    51 }

    附上Junit测试结果

  • 相关阅读:
    自动化测试模型介绍
    接口测试
    adb 命令
    测试思路
    软件测试基础
    页面元素定位
    环境搭建
    自动化
    使用python操作mysql数据库
    mysql索引原理
  • 原文地址:https://www.cnblogs.com/alphajuns/p/11373512.html
Copyright © 2020-2023  润新知