打赏
Fork me on GitHub

执行脚本工具类

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 获取脚本工具类
 *
 * @author l_coil
 * @date 2021-1-13
 */
@Slf4j
public class ExecuteScriptUtils {

    public static void main(String[] args) {

        String a = execute(new String[]{"bash","cd ../"});
        System.out.println(a);
    }

    /**
     * 执行脚本
     *
     * @return String
     */
    public static String execute(String instruction) {
        BufferedReader br = null;
        StringBuilder builder = new StringBuilder();
        try {
            Process p = Runtime.getRuntime().exec(instruction);
            br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String readLine = br.readLine();
            while (readLine != null) {
                readLine = br.readLine();
                builder.append(readLine == null ? "" : readLine);
            }
            log.info("readLine" + readLine);
            p.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return builder.toString();
    }


    /**
     * 执行脚本
     *
     * @return String
     */
    public static String execute(String[] instruction) {
        BufferedReader br = null;
        StringBuilder builder = new StringBuilder();
        try {
            ProcessBuilder processBuilder = new ProcessBuilder(instruction);
//            processBuilder.redirectErrorStream(true);
            Process p = processBuilder.start();
            br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String str;
            while ((str = br.readLine())!=null) {
                builder.append(str);
            }
            p.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return builder.toString();
    }

}

 

posted @ 2021-08-13 19:41  l-coil  阅读(65)  评论(0编辑  收藏  举报