zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    


  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/ifme/p/12129522.html
Copyright © 2011-2022 走看看