使用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(); }