2010-08-24 1 views
7

java.lang.UnsatisfiedLinkError: nessuna JMagick in java.library.path a java.lang.ClassLoader.loadLibrary (ClassLoader.java:1754) a java.lang.Runtime .loadLibrary0 (Runtime.java:823) a java.lang.System.loadLibrary (System.java:1045)JMagick errore quando si cerca di caricare un file - UnsatisfiedLink

quando si cerca di utilizzare il codice

ImageInfo info; 

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

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

tutte le idee perché questo sta accadendo? Sto usando eclipse su OSX

risposta

2

La risposta semplice è che la JVM sta cercando di trovare una libreria nativa utilizzata da JMagick e in mancanza. O non hai affatto la libreria nativa, o non è dove la JVM la sta cercando.


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?

È necessario capire dove "make install" installato la DLL nativa e dire Java per cercarlo nel posto giusto:

  • Se aprite dall'interno di Eclipse , segui la procedura nella risposta del trigoman.

  • Se avviate dalla riga di comando, direttamente o tramite uno script, quindi è necessario includere questa opzione (o equivalente) nel java comando:

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

    Si noti che si tratta di una JVM opzione e deve andare prima del nome della classe.

+0

Ho scaricato un pacchetto per osx da qui: http://joggame.com/software/jmagick.html ha eseguito il configure/make/make install e tutto è andato bene. Cos'altro avrei dovuto impostare per java per trovarlo? – James

2

È necessario aggiungere i file binari che sono stati compilati nel percorso in modo che Eclipse possa vederlo. Prima aggiungi JMagick.jar come libreria, quindi nelle proprietà del progetto-> Percorso build Java -> Librerie, fai clic sul jmagick jar che hai aggiunto a questo progetto e modifica il percorso per "Libreria nativa", che in questo caso sarà dove si trova libJMagick-6.2.6.dylib poiché è quello che dice il link che hai fornito.