Problème lors du chargement d'une dll fichier de bibliothèque... java.lang.UnsatisfiedLinkError: impossible de charger la bibliothèque de
Pendant le chargement d'un fichier dll, je suis l'exception suivante:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
D:\Transliteration\rlpnc-3.1.0-sdk-ia32-w32-msvc80\rlp\bin\ia32-w32-msvc80\btrntjni.dll:
The system cannot find message text for message number 0x%1 in the message file for %2
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.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.basistech.util.internal.Native.loadLibrary(Unknown Source)
at com.basistech.rnt.jni.<clinit>(Unknown Source)
at com.basistech.rnt.RNTEnvironment.<init>(Unknown Source)
at SampleTranslator.<init>(TranslateNameSample.java:88)
at TranslateNameSample.main(TranslateNameSample.java:62)
pas sûr de la cause racine du problème. Quelqu'un peut-il m'aider à résoudre ce problème.
Grâce,
Bhaskar
Avez-vous trouvé la raison de ce déjà?
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Je travaille pour la société qui fabrique le produit que vous essayez d'utiliser. Nous avons vu cette erreur lorsqu'il a été installé avec une version incompatible de la couche sous-jacente nous expédions avec elle, en raison du manque Dll dépendantes comme d'autres l'ont suggéré. N'hésitez pas à contacter notre équipe de support pour obtenir de l'aide.
OriginalL'auteur
Ce n'est pas pour faire n'importe quoi avec le classpath. Placer la DLL dans le répertoire courant, dans l'un des répertoires listés dans la variable d'environnement PATH, ou, mieux, dans le natif chemin de recherche des bibliothèques, défini à l'aide de la propriété système java.de la bibliothèque.chemin d'accès:
L'exception suivante est à venir.. Exception dans le thread "main" java.lang.UnsatisfiedLinkError: D:\Transliteration\rlpnc-3.1.0-sdk-ia32-w32-msvc80\rlpnc\samples\java\btrntjni.dll: Le système ne trouve pas le texte du message pour le message numéro 0x%1 dans le fichier de messages pour %2 au java.lang.Chargeur De Classe$NativeLibrary.charge(Native method) at java.lang.Chargeur de classe.loadLibrary0(Unknown Source) at java.lang.Chargeur de classe.loadLibrary(Unknown Source) at java.lang.Moment de l'exécution.loadLibrary0(Unknown Source) at java.lang.Système.loadLibrary(Unknown Source) at testClass.principale(testClass.java:7)
OriginalL'auteur
Ainsi que la vérification de votre mettant le chemin de la DLL dans la bonne variable d'environnement vous devriez également vérifier les points suivants:
La DLL à charger a toutes ses dépendances satisfaites. En d'autres termes, si cette DLL dépend d'autres Dll, assurez-vous que ces Dll peuvent également être trouvés.
Si la DLL est en cours de chargement utilise un manifeste pour préciser une DLL, s'assurer que les DLL de la version spécifiée dans le manifeste) est également sur la machine (ou dans le GAC, si nécessaire) et peut être trouvé
Vérifier que toutes les fonctions de la DLL mentionné dans votre code Java sont correctement définis et exportés et exporter les mêmes types de données que celles de votre code Java attend. Cela n'arrêtera pas le chargement des DLL, mais il se pourrait bien gâcher la prochaine étape - la résolution de liaison des adresses ou des fonctions de prise de décisions qui doivent travailler, d'échouer, de façon inattendue.
Beaucoup de plaisir à avoir avec cela - beaucoup de petites choses à vous passionner. J'ai eu à traiter avec ce y a quelques années de jouer avec un texte à la parole de package (en C & C++ dans une DLL), en collaboration avec les différentes versions de Java avec les anciennes et nouvelles JNI les styles. Quel gâchis!
OriginalL'auteur
Je n'ai pas vu ce problème moi-même, mais à partir du message d'erreur cela ressemble à une dépendance nécessaire par la DLL est manquant ou incorrect version.
Cet outil pourrait aider: http://www.dependencywalker.com/
OriginalL'auteur
Pour moi, l'ajout de la dll chemin d'accès à la VM options dans mon IDE travaillé.
OriginalL'auteur
Vérifier que le "java.de la bibliothèque.chemin" contient le dossier contenant .dll fichier.
Sur la machine windows, il est lié à de CHEMIN.
http://www.inonit.com/cygwin/jni/helloWorld/load.html
Veuillez poster le complet CLASSPATH
Ici ça va.. D:\apache-ant-1.8.0\lib;D:\Transliteration\rlp-6.5.0-sdk-ia32-w32-msvc80\rlp\lib\ia32-w32-msvc80;D:\Transliteration\rlpnc-3.1.0-sdk-ia32-w32-msvc80\rlp\lib\ia32-w32-msvc80;D:\Transliteration\rlpnc-3.1.0-sdk-ia32-w32-msvc80\rlpnc\samples\java;D:\Transliteration\rlp-6.5.0-sdk-ia32-w32-msvc80\rlp\bin\ia32-w32-msvc80;D:\Transliteration\rlpnc-3.1.0-sdk-ia32-w32-msvc80\rlp\bin\ia32-w32-msvc80;.
D'accord avec Dimitri, JRE ne pas utiliser le CLASSPATH à regarder pour les bibliothèques natives .. il utilise le chemin de la bibliothèque.
Mon Mauvais. Il doit être "Java chemin de la bibliothèque". Pour windows, il inclut le CHEMIN d'accès inonit.com/cygwin/jni/helloWorld/load.html la mise à Jour de réponse.
OriginalL'auteur