无法在Java代码的路径中运行程序

无法在Java代码的路径中运行程序,java,macos,ffmpeg,red5,Java,Macos,Ffmpeg,Red5,我正在Mac(Eclipse中的动态Web项目)上开发一个Red5媒体服务器应用程序。应用程序必须调用FFMPEG将视频转换为不同的格式 通过在终端中运行以下命令,我将“/Applications/FFMPEG”添加到PATH变量中: echo 'export PATH=/Applications/FFMPEG:$PATH' >> ~/.profile 当我从终端调用FFMPEG时,它工作正常。但是,每次从Java代码运行时,我都会使用: Process p = Runtime.g

我正在Mac(Eclipse中的动态Web项目)上开发一个Red5媒体服务器应用程序。应用程序必须调用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相同的目录中。

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


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

或使用Apache Commons Exec(此问题可能有帮助:)谢谢您的解释。我尝试了commons exec和“EnvironmentUtils.getProcEnvironment();”显示PATH变量未更改,而终端中的“echo$PATH”显示新包含的目录。