使用java.lang包下的ProcessBuilder类可以以控制台指令的形式调用其他的进程,实例代码如下:
@Test public void testProcessBuilder() throws IOException { //创建ProcessBuilder对象 ProcessBuilder processBuilder =new ProcessBuilder(); //设置执行的第三方程序(命令) // processBuilder.command("ping","127.0.0.1"); processBuilder.command("ipconfig"); // processBuilder.command("java","-jar","f:/xc-service-manage-course.jar"); //将标准输入流和错误输入流合并,通过标准输入流读取信息就可以拿到第三方程序输出的错误信息、正常信息 processBuilder.redirectErrorStream(true); //启动一个进程 Process process = processBuilder.start(); //由于前边将错误和正常信息合并在输入流,只读取输入流 InputStream inputStream = process.getInputStream(); //将字节流转成字符流 InputStreamReader reader = new InputStreamReader(inputStream,"gbk"); //字符缓冲区 char[] chars = new char[1024]; int len = -1; while((len = reader.read(chars))!=-1){ String string = new String(chars,0,len); System.out.println(string); } inputStream.close(); reader.close(); }