我试图建立一个调用ffmpeg二进制文件的ProcessBuilder。我的问题是调用它,它在MacOs,Ubuntu和WindowsXp下完美返回,但是在Windows7下,waitFor()永不返回。
有谁在Windows 7下有类似的经历?任何帮助,将不胜感激!
我的命令:
ProcessBuilder pb = new ProcessBuilder( ); pb.command( "C:\\Windows\\System32\\cmd.exe", "/c", "c:\\ffmpeg\\bin\\ffmpeg.exe", "-version" );
也尝试过这些:
pb.command( "c:\\ffmpeg\\bin\\ffmpeg.exe", "-version" ); pb.command( "C:\\Windows\\System32\\cmd.exe", "/c", "start c:\\ffmpeg\\bin\\ffmpeg.exe -version" );
结果是一样的。:(
看起来您的进程在其输出和/或错误流中写入了一些内容。它们的缓冲区溢出和处理块。为了避免这种情况,您应该读出并错误处理流。
有关更多信息,请参见“ 当Runtime.exec()不会出现时 ”