(см. Ответ ниже)
Я столкнулся с той же проблемой. Похоже, проблема связана именно с Mac OS X, поскольку у нас есть несколько экземпляров Linux, запущенных без ошибок. Ошибка выглядит следующим образом:
java.io.IOException: не удается запустить программу "/usr/bin/ImageMagick-6.7.3/bin/convert /a/temp/in/tmpPic3143119797006817740.png /a/temp/out/100000726.png": ошибка = 2, нет такого файла или каталога
Все файлы есть, и в каталогах chmod 777 - и, как вы указали, выполнение точной команды из оболочки работает нормально.
Моя теория на данный момент такова, что imagemgick не может загрузить какую-то библиотеку сама по себе, и «нет такого файла» относится к dylib или чему-то в этом роде.
Я попытался установить LD_LIBRARY_PATH и несколько других безрезультатно.
Наконец-то я заработал. Вот как у меня это настроено. Надеюсь, это поможет.
Суть исправления для меня заключалась в том, что я обернул 'convert' в сценарий оболочки, установил несколько переменных окружения и затем вызвал этот сценарий оболочки вместо прямого преобразования:
(convertWrapper.sh)
export MAGICK_HOME=/usr/local/ImageMagick-6.7.5
export MAGICK_CONFIGURE_PATH=${MAGICK_HOME}/etc/ImageMagick:${MAGICK_HOME}/share/doc/ImageMagick/www/source
export PATH=${PATH}:${MAGICK_HOME}/bin
export LD_LIBRARY_PATH=${MAGICK_HOME}/lib:${LD_LIBRARY_PATH}
export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${MAGICK_HOME}/lib
export MAGICK_TMPDIR=/private/tmp
echo "$@" >> /private/tmp/m.log 2>&1
/usr/local/ImageMagick-6.7.5/bin/convert -verbose "$@" >> /private/tmp/m.log 2>&1
(convertWrapper.sh)
Кроме того, вызов convert делал довольно сложные вещи, поэтому я добавил параметр '-respect-круглые скобки' (который мог или не мог иметь эффект).
Я не уверен, какая часть настройки переменных среды необходима, поскольку я некоторое время наносил удар в темноте, но так как это только для моей коробки разработки ...