溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么利用ProcessBuilder類調用外部程序

發布時間:2021-06-24 17:06:36 來源:億速云 閱讀:217 作者:Leah 欄目:編程語言

Java中怎么利用ProcessBuilder類調用外部程序,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1. demo1

@Test  public void testProcessBuilder() {    ProcessBuilder processBuilder = new ProcessBuilder();//    processBuilder.command("ping","127.0.0.1");    processBuilder.command("ipconfig");    //將標準輸入流和錯誤輸入流合并,通過標準輸入流讀取信息    processBuilder.redirectErrorStream(true);    try {      //啟動進程      Process start = processBuilder.start();      //獲取輸入流      InputStream inputStream = start.getInputStream();      //轉成字符輸入流      InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "gbk");      int len = -1;      char[] c = new char[1024];      StringBuffer outputString = new StringBuffer();      //讀取進程輸入流中的內容      while ((len = inputStreamReader.read(c)) != -1) {        String s = new String(c, 0, len);        outputString.append(s);        System.out.print(s);      }      inputStream.close();    } catch (IOException e) {      e.printStackTrace();    }  }

2. demo02

@Test  public void testFFmpeg() {    ProcessBuilder processBuilder = new ProcessBuilder();    //定義命令內容    List<String> command = new ArrayList<>();    command.add("D:/program/ffmpeg-20191229-e20c6d9-win64-static/bin/ffmpeg.exe");    command.add("-i");    command.add("D:/test/video/1.avi");    command.add("-y");//覆蓋輸出文件    command.add("-c:v");    command.add("libx264");    command.add("-s");    command.add("1280x720");    command.add("-pix_fmt");    command.add("yuv420p");    command.add("-b:a");    command.add("63k");    command.add("-b:v");    command.add("753k");    command.add("-r");    command.add("18");    command.add("D:/test/video/1.mp4");    processBuilder.command(command);    //將標準輸入流和錯誤輸入流合并,通過標準輸入流讀取信息    processBuilder.redirectErrorStream(true);    try {      //啟動進程      Process start = processBuilder.start();      //獲取輸入流      InputStream inputStream = start.getInputStream();      //轉成字符輸入流      InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "gbk");      int len = -1;      char[] c = new char[1024];      StringBuffer outputString = new StringBuffer();      //讀取進程輸入流中的內容      while ((len = inputStreamReader.read(c)) != -1) {        String s = new String(c, 0, len);        outputString.append(s);        System.out.print(s);      }      inputStream.close();    } catch (IOException e) {      e.printStackTrace();    }  }

看完上述內容,你們掌握Java中怎么利用ProcessBuilder類調用外部程序的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女