#|03Java常用API-15. ProcessBuilder类以及使用

概述 ProcessBuilder类是java.lang包下的基础类,在使用时无需导入,可以直接使用。它主要用于创建和运行各类外部程序,例如javac,java等等。
构造方法 ProcessBuilder(List command),ProcessBuilder(String… command)
常用方法

  • void command(String… command) 用于将待执行命令及参数传递给它;
  • Process start() 执行命令并返回一个Process对象,用于获取对执行程序的输入和输出;
  • void directory(File base) 用于设置待执行命令的工作目录,可以不设置;
使用技巧 1、在使用它的时候建议将其封装一下,这样更便于使用,例如,
public class ProcessUtil {public static void process(String... command) throws Exception {process((File)null, command); }public static void process(List> commandList) throws Exception { process((File)null, (String[])commandList.toArray(new String[0])); }public static void process(File base, String... command) throws Exception { ProcessBuilder processBuilder = new ProcessBuilder(new String[0]); if (base != null) { processBuilder.directory(base); } processBuilder.command(command); Process process = processBuilder.start();

添加一个input2string()方法,用于将执行程序获得的输出转换为String对象,便于输出,例如,
public static String input2str(InputStream inputStream) throws UnsupportedEncodingException {ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; try { int len; while((len = inputStream.read(buffer)) != -1) { outSteam.write(buffer, 0, len); } outSteam.close(); inputStream.close(); } catch (IOException var5) { var5.printStackTrace(); } return outSteam.toString("utf-8"); }

【#|03Java常用API-15. ProcessBuilder类以及使用】作为一个JAVA底层类,使开发者能够与操作系统进行强大的互动,而且在使用它进行系统命令的调用时,能够在后台进行,不会有使用Runtime类时弹出cmd命令执行框的困扰。

    推荐阅读