JMagick Ошибка при попытке загрузить файл - UnsatisfiedLink - PullRequest
7 голосов
/ 24 августа 2010

java.lang.UnsatisfiedLinkError: нет JMagick в java.library.path в java.lang.ClassLoader.loadLibrary (ClassLoader.java:1754) at java.lang.Runtime.loadLibrary0 (Runtime.java:823) at java.lang.System.loadLibrary (System.java:1045)

при попытке использовать код

ImageInfo info;

    try {
      info = new ImageInfo();
      //image = new MagickImage(info);

    } catch (MagickException e) {
      logger.error(InsightsHelper.getStackTrace(e));
    }

есть идеи, почему это происходит? Я использую Eclipse на OSX

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

Вам нужно добавить скомпилированные вами двоичные файлы в путь, чтобы Eclipse мог его видеть.Сначала добавьте JMagick.jar в качестве библиотеки, затем в свойствах проекта -> Путь сборки Java -> Библиотеки, щелкните на jargick jar, который вы добавили в этот проект, и отредактируйте расположение для «Собственной библиотеки», которая в данном случаеэто будет место, где находится libJMagick-6.2.6.dylib, поскольку именно об этом говорит указанная вами ссылка.

2 голосов
/ 24 августа 2010

Простой ответ заключается в том, что JVM пытается найти собственную библиотеку, используемую JMagick, и терпит неудачу.Либо у вас вообще нет нативной библиотеки, либо это не то место, где ее ищет JVM.


Я скачал пакет для osx здесь: joggame.com/software/jmagick.html запустил установку configure / make / make и все прошло хорошо.Что еще мне нужно было бы настроить для java, чтобы найти его?

Вам нужно выяснить, где "make install" установил нативную DLL и сказать Java, чтобы найти ее в нужном месте:

  • Если вы запускаете из Eclipse, следуйте процедуре в ответе trigoman.

  • Если вы запускаете из командной строки, напрямую или черезсценария, то вам нужно включить эту опцию (или эквивалент) в вашу команду java:

        java -Djava.library.path=/some/folder/ .... 
    

    Обратите внимание, что это опция JVM, и она должна идти перед именем класса.

...