博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell java 执行
阅读量:5742 次
发布时间:2019-06-18

本文共 4065 字,大约阅读时间需要 13 分钟。

 

java shell 命令 

/** *  * @author baoyou E-mail:curiousby@163.com * @version 2016年11月2日 下午1:54:49 * desc: */public class ShellProcess {    private static ShellProcess instance;    public static ShellProcess getInstance() {        if (instance == null) {            synchronized (ShellProcess.class) {                if (instance == null) {                    instance = new ShellProcess();                }            }        }        return instance;    }    /**     * 执行相应shell脚本     * @param args 执行脚本的参数,[0]path:shell脚本路径;[1~n]脚本入参     * @return     返回码,0:成功  1:失败     */    public int runShell(String[] args) {        int runRes = SystemGlobal.FAILED;        try {            Process process = Runtime.getRuntime().exec(args);//调用相应shell脚本            new StreamGobbler(process.getInputStream(), StreamGobbler.INFO).start();            new StreamGobbler(process.getErrorStream(), StreamGobbler.ERROR).start();            runRes = process.waitFor();        } catch (Exception e) {            e.printStackTrace();        }        return runRes;    }    /**     * 执行相应shell命令     * @param cmd 执行的命令     * @return    返回码,0:成功  1:失败     */    public int runShell(String cmd) {        return runShell(cmd);    }    /**     * 自动根据运行时环境执行shell命令     * @param args shell命令以空格分割后的list     * @return     返回码,0:成功  1:失败     */    public int runShell(List
args) { int runRes = SystemGlobal.FAILED; try { ProcessBuilder pb = new ProcessBuilder(args); Process process = pb.start(); new StreamGobbler(process.getInputStream(), StreamGobbler.INFO).start(); new StreamGobbler(process.getErrorStream(), StreamGobbler.ERROR).start(); runRes = process.waitFor(); } catch (Exception e) { e.printStackTrace(); } return runRes; } /** * 执行shell命令,并获取返回结果 * @param args shell命令以空格分割后的list * @return 执行shell命令后的返回结果(按行分割后的list),如果发生异常,返回空List */ public List
runShellWithResult(List
args) { List
results = new ArrayList
(); try { ProcessBuilder pb = new ProcessBuilder(args); Process process = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); String data = null; while ((data = br.readLine()) != null) { results.add(data); } new StreamGobbler(process.getInputStream(), StreamGobbler.INFO).start(); new StreamGobbler(process.getErrorStream(), StreamGobbler.ERROR).start(); process.waitFor(); } catch (Exception e) { e.printStackTrace(); return new ArrayList
(); } return results; }}

 

 

 

package com.taskschedule.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import org.apache.log4j.Logger;/** *  * @author baoyou E-mail:curiousby@163.com * @version 2016年11月2日 下午1:54:57 * desc: */public class StreamGobbler extends Thread {    private InputStream is;    private int type;    private static Logger logger = Logger.getLogger(StreamGobbler.class);    public static final int INFO = 0;    public static final int ERROR = 1;    public StreamGobbler(InputStream is, int type) {        this.is = is;        this.type = type;    }    @Override    public void run() {        try {            InputStreamReader isr = new InputStreamReader(is);            BufferedReader br = new BufferedReader(isr);            String line = null;            while ((line = br.readLine()) != null) {                if (type == INFO) {                    logger.info(line);                } else if (type == ERROR) {                    logger.error(line);                }            }        } catch (IOException ioe) {            ioe.printStackTrace();        }    }}

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。

 
 
 谢谢您的赞助,我会做的更好!

 

 

转载地址:http://jeizx.baihongyu.com/

你可能感兴趣的文章
【算法】CRF
查看>>
windows 8 微软拼音输入法
查看>>
Windows UI风格的设计(7)
查看>>
SQL中使用WITH AS提高性能 使用公用表表达式(CTE)简化嵌套SQL
查看>>
oracle 强行杀掉一个用户连接
查看>>
Git提交本地库代码到远程服务器的操作
查看>>
让你快速上手的Glide4.x教程
查看>>
浮动和清除(闭合)浮动
查看>>
LR录制脚本时IE打不开的原因
查看>>
Sublime Text 2.0.2,Build 2221注册码
查看>>
最长递增子序列 动态规划
查看>>
原生CSS设置网站主题色—CSS变量赋值
查看>>
webpack 4.0 中 clean-webpack-plugin 的使用
查看>>
中文词频统计
查看>>
POJ 2236 Wireless Network (并查集)
查看>>
python分类
查看>>
GitBlit (1)-- 在linux 安装 GitBlit 并运行
查看>>
程序是如何执行的(一)a=a+1
查看>>
18 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果
查看>>
BZOJ - 3578: GTY的人类基因组计划2
查看>>