2011-10-18 4 views
0

J'utilise Eclipse et obtenir l'erreur ci-dessous lorsque je tente d'accéder à une méthode native d'un ExtractImage.dll Fichier-UnsatisfiedLinkError tout en accédant à une méthode native

java.lang.UnsatisfiedLinkError: getVertices 
    at com.coimp.application.ExtractImage.getVertices(Native Method) 

J'ai ajouté la dll au-dessous de chemins -

C:\Program Files\Java\jre1.5.0_10\bin; 
. //current workspace 
C:\WINDOWS\system32; 
C:\WINDOWS; 

et je l'ai utilisé cette méthode pour charger la bibliothèque -

System.loadLibrary("ExtractImage"); 

également essayé avec -

System.load ("c: \ ExtractImage.dll");

Ajout du fichier .dll au chemin NativeLibrary

Le même code fonctionne sur mon application Web.

Geeks, des suppositions pour résoudre ce problème? Merci pour votre soutien.

+0

Est-ce que votre DLL dépend d'autres DLL? Utilisez dumpbin/imports pour voir. – bmargulies

+2

merci @bmargulies pour répondre. J'ai trouvé la solution. En fait, la classe Java appelée était dans un autre paquet et la classe Cpp faisait référence à une classe dans un autre paquet. – Mohsin

Répondre

0

Dans les options « Configuration Exécuter ... » dans les « Arguments » onglet « préciser dans Arguments VM » « -Djava.librar.path = YOUR_DIR_TO_DLL »

Si la bibliothèque possède des dépendances avec d'autres DLL ne sont pas présents dans le PATH, vous devez également inclure les répertoires (séparés par;)

Mise à jour Si cela échoue aussi, vous pouvez modifiy variable d'environnement PATH (dans l'onglet « environnement »). Je vous recommande de modifier la variable (en ajoutant vos répertoires) et de laisser l'option "Ajouter l'environnement à l'environnement natif" sélectionnée (boutons radio en bas).

+0

merci de répondre. J'ai essayé votre tour et ai imprimé le chemin aussi bien pour vérifier s'il a pris le bon chemin avec -System.out.println (System.getProperty ("java.library.path")), et oui il a pris le chemin correctement. Mais toujours obtenir la même erreur dans l'appel à la méthode native. – Mohsin

+0

L'exception de l'OP n'est pas celle que vous obtenez en ne chargeant pas une bibliothèque, ce qui serait "no ExtractImage in java.library.path". – OrangeDog

Questions connexes