2010-08-24 13 views
7

java.lang.UnsatisfiedLinkError: pas JMagick dans java.library.path à java.lang.ClassLoader.loadLibrary (ClassLoader.java:1754) à java.lang.Runtime .loadLibrary0 (Runtime.java:823) à java.lang.System.loadLibrary (System.java:1045)JMagick Erreur lors de la tentative de charger un fichier - UnsatisfiedLink

lorsque vous essayez d'utiliser le code

ImageInfo info; 

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

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

idées pourquoi ce qui se passe? J'utilise eclipse sur OSX

Répondre

2

La réponse simple est que la JVM essaye de trouver une bibliothèque native utilisée par JMagick et échoue. Soit vous n'avez pas du tout la bibliothèque native, soit ce n'est pas là que la JVM la recherche.


I downloaded a package for osx from here: joggame.com/software/jmagick.html ran the configure/make/make install and all went well. What else would I have to set up for java to find it?

Vous devez savoir où « make install » installé la DLL native et dire Java pour chercher au bon endroit:

  • Si vous lancez à partir d'Eclipse , suivez la procédure dans la réponse de trigoman.

  • Si vous lancez à partir de la ligne de commande, directement ou via un script, vous devez inclure cette option (ou l'équivalent) dans votre commande java:

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

    Notez que ceci est une machine virtuelle Java option et doit aller avant le nom de la classe.

+0

J'ai téléchargé un paquet pour osx à partir d'ici: http://joggame.com/software/jmagick.html a lancé l'installation configure/make/make et tout s'est bien passé. Quoi d'autre devrais-je mettre en place pour Java pour le trouver? – James

2

Vous devez ajouter les binaires que vous avez compilés au chemin afin qu'Eclipse puisse le voir. Ajoutez d'abord JMagick.jar en tant que bibliothèque, puis dans les propriétés du projet-> Chemin de compilation Java -> Bibliothèques, vous cliquez sur le fichier jmagick que vous avez ajouté à ce projet et modifiez l'emplacement de "Bibliothèque native". Dans ce cas, c'est là que se trouve libJMagick-6.2.6.dylib puisque c'est ce que dit le lien que vous avez fourni.