Problem beim laden einer dll-Bibliotheksdatei,... java.lang.UnsatisfiedLinkError: Can ' T load library
Beim laden einer dll-Datei, erhalte ich die folgende Ausnahme:
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)
nicht sicher über die Ursache des Problems. Kann mir jemand helfen bei der Lösung dieses Problems.
Dank,
Bhaskar
- Finden Sie heraus, der Grund für diese bereits?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich arbeite für die Firma, die macht das Produkt, das Sie versuchen zu verwenden. Wir haben diesen Fehler gesehen, wenn es installiert wurde mit einer inkompatiblen version der zugrunde liegenden Schicht wir versenden mit es, wegen der fehlenden abhängigen DLLs, wie andere vorgeschlagen haben. Fühlen Sie sich frei, um Kontaktieren Sie unser support team für weitere Hilfe.
Diese nicht haben, etwas zu tun mit dem classpath. Legen Sie die DLL in das aktuelle Verzeichnis an, in einem der angegebenen Verzeichnisse in der PATH-Umgebungsvariable, oder, am besten von allen, in der native library search path", über die system-property java.Bibliothek.Pfad:
Sowie die überprüfung Ihrer setzen den Pfad zu der DLL in der richtigen Umgebung Variablen, die Sie sollten auch prüfen, die folgenden:
Die DLL, laden Sie alle Ihre Abhängigkeiten erfüllt. In anderen Worten, wenn diese DLL hängt von anderen DLLs, stellen Sie sicher, dass diese DLLs können auch gefunden werden.
Wenn die DLL geladen wird, verwendet ein manifest angeben, eine bestimmte DLL, sicherzustellen, dass die DLL (von der version, die im manifest festgelegt) ist auch auf der Maschine (oder im GAC, wenn erforderlich) und kann gefunden werden
Überprüfen Sie, dass alle DLL-Funktionen bezeichnet, die in Ihrer Java-code sind richtig definiert und exportiert und exportieren Sie die gleichen Datentypen wie diejenigen, die Ihre Java-code erwartet wird. Dies wird nicht aufhören, die DLL zu laden, aber es kann gut Durcheinander, bis die nächste Stufe - auflösen von link-Adressen zu machen, oder Funktionen, die sollen arbeiten, nicht in unerwarteter Weise.
Viel Spaß mit diesem - viele kleine Dinge zu stolpern, die Sie bis. Ich hatte, um sich mit diesem ein paar Jahre zurück messing mit einem text-to-speech-Paket (im C & C++ in eine DLL) arbeiten mit verschiedenen Versionen von Java mit alten und neuen JNI-Stile. Was für ein Durcheinander!
Ich habe nicht gesehen, dieses problem selbst, aber aus der Fehlermeldung-es klingt wie eine Abhängigkeit benötigt, die DLL ist entweder fehlende oder falsche version.
Dieses tool könnte helfen: http://www.dependencywalker.com/
Für mich, das hinzufügen der dll-Pfad für die VM-Optionen in meiner IDE gearbeitet.
Überprüfen Sie, dass das "java.Bibliothek.path" enthält den Ordner mit .dll Datei.
Auf windows-Rechner es ist in Bezug auf PFAD.
http://www.inonit.com/cygwin/jni/helloWorld/load.html