Ich laden C++ JNI DLL auf meinem Java-Projekt. Es funktioniert ruhig gut auf JDK 1.6, aber es gibt ein Problem JDK 1.8. Gibt es Änderungen in C++ JNI DLL Laden in Java 1.8?Wenn in Java laden JNI DLL, JDK 1.8 UnzufriedeneLinkError
Ich habe Fehler und Ergebnis unten angehängt.
JDK 1.8 Console:
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\ws-pidion\PidionSDK\oojnidotnet.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 JavaCallNative.<clinit>(JavaCallNative.java:14)
Codes:
File readReturnNativeStringVaueFile;
static {
System.loadLibrary("oojnidotnet");
}
protected void finalize() throws Throwable {
super.finalize();
}
public native boolean connect(String paramString);
Gleiche Codes arbeiten mit JDK 1.6.
Danke.
Die Fehlermeldung schlägt vor, dass Ihre DLL von anderen DLLs abhängt, von denen eine nicht gefunden werden konnte. Weißt du, welche Abhängigkeiten deine DLL hat? Siehe auch ["So überprüfen Sie die DLL-Abhängigkeit?"] (Http://stackoverflow.com/q/7378959/2711488) – Holger
Ja, ich kenne Abhängigkeiten andere DLL. Und dasselbe Verzeichnis mit meinem Projekt. Meine Projektarbeit in JDK 1.6. Was unterscheidet JDK 1.6 und JDK 1.8? Sicherheit für den Weg? –
Also verwendet die DLL nicht JNI noch System-DLLs? Es ist schwer zu glauben, dass * alle * erforderlichen Bibliotheken im selben Verzeichnis sind. Es ist also immer noch möglich, dass es einen absoluten Pfad oder einen Verweis auf eine Bibliothek gibt, die nicht unter Java 8 existiert. Sie sollten * überprüfen * statt zu glauben. – Holger