【问题标题】:Unable to run a program in PATH from Java code无法从 Java 代码运行 PATH 中的程序
【发布时间】:2012-11-05 17:58:08
【问题描述】:

我正在 Mac 上开发 Red5 媒体服务器应用程序(Eclipse 中的动态 Web 项目)。应用必须调用 FFMPEG 才能将视频转换为不同的格式。

我通过在终端中运行以下命令将“/Applications/FFMPEG”添加到 PATH 变量中:

echo 'export PATH=/Applications/FFMPEG:$PATH' >> ~/.profile

当我从终端调用 FFMPEG 时,它工作正常。但是,每次我从 Java 代码运行它时:

Process p = Runtime.getRuntime().exec("ffmpeg");
p.waitFor();

我收到以下错误:

Cannot run program "ffmpeg": error=2, No such file or directory

我认为这可能是特定于项目类型的安全限制,但即使是简单的 Java 程序也会产生相同的结果。我错过了什么?


将“ffmpeg”更改为应用程序的完整路径有效,但我不想将 FFMPEG 上传到生产服务器上与 Red5 相同的目录中。

【问题讨论】:

    标签: java macos ffmpeg red5


    【解决方案1】:

    PATH 是一个命令提示符。 Java 对路径一无所知。

    指定可执行文件的完整路径(即绝对路径)

    【讨论】:

    • 或者使用 Apache Commons Exec(这个问题可以帮助:stackoverflow.com/questions/2693020/…
    • 感谢您的解释。我尝试了 commons-exec 和 'EnvironmentUtils.getProcEnvironment();'显示PATH变量没有改变,而终端中的'echo $PATH'显示新包含的目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多