ProcessBuilder метод start () для запуска команды (ffprobe) в eclipse / mac - PullRequest
0 голосов
/ 09 июня 2018

Я установил ffprobe в Mac и каталог / usr / local / bin / ffprobe.Когда я запускаю команду ffprobe в терминале, она работает нормально, но когда я запускаю ее в eclipse через ProcessBuilder, она не запускается и выдает исключение как Caused by: java.io.IOException: Cannot run program "ffprobe": error=2, No such file or directory. Но, когда я запускаю ProcessBuilder, давая абсолютный путьffprobe, работает нормально.

Рабочий код:

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_format, json, -show_format, -show_streams, some_url]

, выдается ошибка.Как запустить команду ffprobe без указания абсолютного пути?Я уже следил за этим постом , но не смог помочь в моей проблеме.

Мой процесс Java в Eclipse запущен на

Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/

1 Ответ

0 голосов
/ 09 июня 2018

Наконец, я смог решить эту проблему с помощью следующих шагов, упомянутых Сакрой в этом сообщении:

  1. Создайте eclipse.sh в /Applications/Eclipse.app/Содержание / MacOS /
export ENV_VAR1=/usr/local/bin/
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" $@

chmod + x /Applications/Eclipse.app/Contents/MacOS/eclipse.sh

Откройте информационный список Eclipse.app и измените значение ключаCFBundleExecutable из eclipse в eclipse.sh.

Принудительно обновить LaunchService как

/ Система / Библиотека / Каркасы / CoreServices.framework / Frameworks / LaunchServices.framework / Support /lsregister -v -f /Applications/eclipse/Eclipse.app

...