qq_43517117 2019-05-31 17:33 采纳率: 0%
浏览 1480

ffmpeg配了环境变量,在cmd中可以正常使用,Java使用processbuilder调用cmd命令就报错无法执行?

ffmpeg配了环境变量,在cmd中可以正常使用,Java使用processbuilder调用cmd命令就报错无法执行,

public void test3() throws Exception {
        ProcessBuilder builder = new ProcessBuilder("ffmpeg -i E:\\football.mp4");
        builder.redirectErrorStream(true);
        try {
            Process process = builder.start();
            final StringBuilder stringBuilder = new StringBuilder();
            final InputStream inputStream = process.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"GBK"));
            String line;
            int i = 1;
            try {
                while ((line = reader.readLine()) != null) {
                    System.out.println("读取第"+ i++ +"行:"+line);
                    stringBuilder.append(line);
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();

            }
        } catch (Exception e) {
            throw new RuntimeException("ffmpeg执行异常" + e.getMessage());
        }
    }

报错信息

java.lang.RuntimeException: ffmpeg执行异常Cannot run program "ffmpeg -i E:\football.mp4": CreateProcess error=2, 系统找不到指定的文件。

文件位置是对的,也是存在的 同样的命令 cmd直接执行时可以的

文件权限和ffmpeg文件夹的权限也修改过:
D:\ffmpeg /T /E /C /G everyone:F

到底是为什么啊?

  • 写回答

2条回答 默认 最新

  • Kinhan_Lin 2019-06-12 09:56
    关注

    我也出现这个问题,原因是ffmpeg是在Java进程启动过后,才后添加ffmpeg的环境变量,一开始怎么找都没找到原因,后来想想,会不会是jvm加载环境变量机制不一样,随后我就重启了电脑,再执行程序,就没出现这个问题了。初步猜测就是JVM加载环境变量的机制问题,具体得验证一下才知道

    评论

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题