首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过Java Tomcat Server运行Windows命令

通过Java Tomcat Server运行Windows命令
EN

Stack Overflow用户
提问于 2016-05-06 18:17:13
回答 2查看 507关注 0票数 1

我在windows机器上使用FFMPEG库文件将媒体文件从一种格式转换成另一种格式,所以我尝试通过java调用FFMPEG windows命令。它是通过在普通java程序中调用Process p = Runtime.getRuntime().exec("ffmpeg -i " + xxx.mp4 + " " + yyy.wav + "");来工作的。但是当我在TOMCAT服务器中启动我的项目时,它抛出了像java.io.IOException: cannot run program : "ffmpeg" CreateProcess error=2, the system cannot find the file specified这样的异常。我在下面附上了我的代码..

代码语言:javascript
运行
复制
String sVideo = "C:\\Users\\Administrator\\Desktop\\voice.amr";
    String dVideo2 = "C:\\Users\\Administrator\\Desktop\\sVideo.wav";
    try {
        Process p = Runtime.getRuntime().exec("ffmpeg -i " + sVideo + " " + dVideo2 + "");          
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

上面的代码可以工作,当单独运行这个类文件时,但是当我在我的项目中使用这个代码时,当我在TOMCAT服务器中运行我的项目时,它抛出异常。提前谢谢。

EN

Stack Overflow用户

发布于 2016-05-06 19:49:56

您可以使用ProcessBuilder创建进程,其中包含用于运行程序的路径文件夹。

代码语言:javascript
运行
复制
String folder = "C:\\Users\\Administrator\\Desktop";
String[] cmdarray = new Sring[]{"ffmpeg -i","voice.amr", "sVideo.wav"};
ProcessBuilder processBuilder = new ProcessBuilder( cmdarray );
processBuilder.directory(new File(folder));
Process process = processBuilder.start();

int exitCode = -1;
boolean finished = false;
while ( !finished ) {
    exitCode = process.waitFor();
    finished = true;
}

如果需要,cmdarray将拥有您的可执行文件和参数。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37069863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档