首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

调用系统的DOS下令方法执行需要的命令

2012-09-19 
调用系统的DOS命令方法执行需要的命令package com.huaweisymantec.core.utilsimport java.io.BufferedRea

调用系统的DOS命令方法执行需要的命令

package com.huaweisymantec.core.utils;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import org.apache.commons.lang.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 命令行命令执行工具类 *  * @author s00108907 *  */public final class CommandUtils {    private static final Logger LOG = LoggerFactory.getLogger(CommandUtils.class);    /**     * 调用系统的DOS命令方法执行需要的命令     *      * @param command 要执行的命令     * @return 执行结果     * @throws IOException     */    public static String exec(String command) throws IOException {        return exec(null, command);    }    /**     * 调用系统的DOS命令方法执行需要的命令     *      * @param directory 此进程的工作目录     * @param command 要执行的命令     * @return 执行结果     * @throws IOException     */    public static String exec(String directory, String command) throws IOException {        InputStream in = null;        Reader reader = null;        BufferedReader br = null;        try {            ProcessBuilder pb;            if (System.getProperty("os.name").indexOf("Windows") == -1) {                pb = new ProcessBuilder("/bin/sh", "-c", command);            } else {                pb = new ProcessBuilder("cmd", "/c", command);            }            if (StringUtils.isNotBlank(directory)) {                pb.directory(new File(directory));            }            // merge the error output with the standard output            pb.redirectErrorStream(true);            LOG.debug("Now exceuting:{}", command);            Process p = pb.start();            in = p.getInputStream();            reader = new InputStreamReader(in, "gb2312");            br = new BufferedReader(reader);            StringBuffer lines = new StringBuffer();            String line = null;            while ((line = br.readLine()) != null) {                lines.append(line).append("\r\n");            }            LOG.debug("Exceuting result:{}", lines.toString());            return lines.toString();        } finally {            if (reader != null) {                reader.close();            }            if (br != null) {                br.close();            }            if (in != null) {                in.close();            }        }    }}

热点排行