Bonjour à tous,
je tente d'utiliser JMagick (port d'ImageMagick), et lors que je tente d'exécuter le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
MagickImage image = null;
try {
    image = new MagickImage(new ImageInfo(filename));
} catch (MagickException e) {
    e.printStackTrace();
    throw e;
}
j'ai l'erreur suivante :
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\java\bin\jmagick.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at magick.MagickLoader.<clinit>(MagickLoader.java:13)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at magick.Magick.<clinit>(Magick.java:21)
at fr.cgin.tests.imaging.Main.convertUsingMagick(Main.java:252)
at fr.cgin.tests.imaging.Main.main(Main.java:141)
La propriété système "java.library.path" contient le répertoire "C:\java\bin\", celui-ci contenant jmagick.dll, ainsi que toutes les dlls correspondantes d'ImageMagick (CORE* et IM*). J'ai vérifié que les dépendances de jmagick.dll étaient bien satisfaites via l'outil DependencyWalker.
Comment corriger ce problème, sachant que :
- j'ai tenté d'ajouter le chemin dans la variable d'environnement PATH
- je n'ai pas trouvé de dépendances manquantes*
- les versions de JMagick et ImageMagick concordent (6.3.9 - Q16)

Merci beaucoup !

* : le rapport génère un avertissement :
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Néanmoins, je n'ai jamais eu de problème en exécutant un quelconque programme lié avec la dll correspondante (mpr.dll). Peut être que la JVM ne laisse pas passer cela ?