2017-04-07 3 views
0

J'essaie d'exécuter un programme lié à l'intégration du lecteur UHF. La programmation SDK (ID_ISC.SDK.Java-V4.7.0) a été donnée par le fabricant du lecteur (dans mon cas, le lecteur est ID ISC.MRU102-lecteur USB par FEIG Electronic). Quand j'ai essayé l'exécution d'un exemple de projet à partir de ce SDK, je suis l'erreur suivante:Netbeans IDE: java.lang.UnsatisfiedLinkError: OBIDISC4J.dll: impossible de trouver les bibliothèques dépendantes

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\OBID\OBIDISC4J.dll: Can't find dependent libraries 
     at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
     at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) 
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857) 
     at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
     at java.lang.System.loadLibrary(System.java:1122) 
     at de.feig.FedmIscReader.<init>(Unknown Source) 
     at ISOHostSample.ISOHostSample.<init>(ISOHostSample.java:41) 
     at ISOHostSample.ISOHostSample.main(ISOHostSample.java:865) 

J'ai suivi les instructions données dans le fichier readme SDK:

J'ai placé les fichiers .dll requis ainsi que un fichier .jar (OBIDISC4J.jar) dans le dossier OBID sous Program Files et j'ai entré ce chemin dans la variable d'environnement Path.

Le programme navigue vers ce chemin lors de l'exécution, mais ne peut pas récupérer le fichier de la bibliothèque jar, rejetant ainsi l'exception ci-dessus.

Une aide pour résoudre ce problème serait grandement appréciée. Merci

Répondre

0

J'ai eu un peu de chance avec l'outil Dependency Walker "depends.exe" pour apprendre spécifiquement quelles bibliothèques dépendantes il ne peut pas trouver. En fin de compte, c'est généralement parce qu'ils ne sont pas sur votre chemin de classe. Les DLL doivent figurer dans le CLASSPATH de votre application, et ce n'est pas la même chose que la variable d'environnement Path. Puisque le dossier "src" est déjà sur le classpath, ce que je fais habituellement est de créer un dossier "native \ windows" ou "native/linux" à l'intérieur de "src" et y mettre toutes mes bibliothèques .DLL ou .SO.

Si vous placez les dans le dossier d'abord des bibliothèques de projet n'est pas une option pour une raison quelconque, vous pouvez spécifier le chemin de classe sur la ligne de commande java.exe: « java -classpath jar MyJar.jar »

+0

J'ai essayé de ouvrir OBIDISC4J.dll avec l'outil depends.exe, mais n'a rien pu en retirer. Il a montré quelques erreurs comme le système n'a pas pu trouver le chemin spécifié. J'ai essayé de placer tous les fichiers .dll sous le dossier src/native/windows, pas de chance là aussi. Je ne peux pas savoir exactement où se situe le problème. – Arjun