JAVAEE细细看 开发日常 04 - ProcessBuilder 来调用第三方应用程序

ProcessBuilder
1. 调用第三方应用程序
    @Test
    public void testProcessBuilder() throws IOException {
        //创建processBuilder对象
        ProcessBuilder processBuilder = new ProcessBuilder();
        //设置第三方应用程序的命令
//        processBuilder.command("ping","127.0.0.1");
        processBuilder.command("ipconfig");

        //将标准输入流和错误流合并
        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();

    }

2. 运行FFmpeg,avi转MP4
@Test
public void testFFmpeg() throws IOException {
    //创建processBuilder对象
    ProcessBuilder processBuilder = new ProcessBuilder();
    //设置第三方应用程序的命令
    List<String> command = new ArrayList<>();
    command.add("D:\\Program Files\\ffmpeg-20180227-fa0c9d6-win64-static\\bin\\ffmpeg.exe");
    command.add("-i");
    command.add("E:\\ffmpeg_test\\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("E:\\ffmpeg_test\\1.mp4");
    processBuilder.command(command);

    //将标准输入流和错误流合并
    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();

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值