ImageMagick convert exit status 133

Я использую инструмент ImageMagick convert для преобразования изображений из моей программы Java, работающей в Mac OS X. Я использую следующий код, адаптированный из здесь .

public static void convertToJPG(String originalFile, String newFile) throws Exception {
    executeCommand("/usr/local/ImageMagick-6.6.7/bin/convert", originalFile, newFile);
}

private static void executeCommand(String... command) throws Exception {
    ProcessBuilder pb = new ProcessBuilder(command);
    pb.redirectErrorStream(true);
    Process p = pb.start();
    int exitStatus = p.waitFor();
    System.out.println(exitStatus);
    if(exitStatus != 0)
        throw new Exception("Error converting image.");
}

Однако, когда я это сделаю, я получаю статус выхода 133 и сообщение об ошибке ниже. Я предполагаю, что это как-то связано с разрешениями, поскольку когда я запускаю ту же команду с терминала, она работает нормально.

Сообщение об ошибке:

dyld: Library not loaded: /ImageMagick-6.6.7/lib/libMagickCore.4.dylib
  Referenced from: /usr/local/ImageMagick-6.6.7/bin/convert
  Reason: image not found

Изменить: Хорошо, получается, что я был получение вышеуказанного сообщения об ошибке из-за того, что Java не может увидеть переменную среды DYLD_LIBRARY_PATH . Я перезапустил Eclipse, и все заработало.

5
задан Community 23 May 2017 в 12:10
поделиться