Java ProcessBuilder start()方法在eclipse/mac中运行命令(ffprobe)
我已经在mac中安装了ffprobe,目录是/usr/local/bin/ffprobe。当我在终端中运行ffprobe命令时,它工作正常,但当我通过ProcessBuilder在eclipse中运行它时,它不会运行并引发异常,原因是:java.io.IOException:无法运行程序“ffprobe”:error=2,没有这样的文件或目录。 但是,当我运行ProcessBuilder给出ffprobe的绝对路径时,它工作得很好 工作代码:Java ProcessBuilder start()方法在eclipse/mac中运行命令(ffprobe),java,eclipse,processbuilder,ffprobe,Java,Eclipse,Processbuilder,Ffprobe,我已经在mac中安装了ffprobe,目录是/usr/local/bin/ffprobe。当我在终端中运行ffprobe命令时,它工作正常,但当我通过ProcessBuilder在eclipse中运行它时,它不会运行并引发异常,原因是:java.io.IOException:无法运行程序“ffprobe”:error=2,没有这样的文件或目录。 但是,当我运行ProcessBuilder给出ffprobe的绝对路径时,它工作得很好 工作代码: sample args:[/usr/local/bi
sample args:[/usr/local/bin/ffprobe, -v, quiet, -print_format, json, -show_format, -show_streams, some_url]
ProcessBuilder pb = new ProcessBuilder(cmdArgs);
Process proc = pb.start();
但是,如果args是[ffprobe,-v,quiet,-print\u format,json,-show\u format,-show\u streams,some\u url]
它抛出错误。如何在不提供绝对路径的情况下运行ffprobe命令?我已经跟进了,但在我的问题上无能为力
我在eclipse中的java进程运行在
Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/
最后,我通过Sakra在post中提到的以下步骤解决了这个问题:
愚蠢的问题,但是
/usr/local/bin/
是否位于Java进程的路径中(除非您是从命令行运行,否则不适用于您的终端)是的。我也可以在eclipse终端中运行ffprobe命令。当我在java代码中打印ffprobe的路径时,它清楚地显示了/usr/local/bin/ffprobe
export ENV_VAR1=/usr/local/bin/
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" $@