loveExtJs 发表于 2013-1-26 14:10:21

调用系统的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();            }      }    }}
页: [1]
查看完整版本: 调用系统的DOS命令方法执行需要的命令