0
JavaプロジェクトにC++ JNI DLLをロードします。 JDK 1.6では静かに動作しますが、JDK 1.8の問題があります。 Java 1.8でC++ JNI DLLのロードに変更がありますか?Javaロード時jni dll、JDK 1.8 UnsatisfiedLinkError
私は以下のエラーと結果を添付しました。
JDK 1.8コンソール:
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)
コード:
File readReturnNativeStringVaueFile;
static {
System.loadLibrary("oojnidotnet");
}
protected void finalize() throws Throwable {
super.finalize();
}
public native boolean connect(String paramString);
同じコードは、JDK 1.6で動作します。
ありがとうございました。
エラーメッセージは、DLLが他のDLLに依存していることを示しています。 DLLにはどのような依存関係がありますか?関連項目[DLLの依存関係をチェックする方法?](http://stackoverflow.com/q/7378959/2711488) – Holger
はい、私は他のDLLの依存関係を知っています。私のプロジェクトと同じディレクトリ。私のプロジェクトはJDK 1.6で動作します。 JDK 1.6とJDK 1.8の違いは何ですか?パスのセキュリティ? –
DLLはJNIとシステムDLLを使用していませんか? *すべての必要なライブラリが同じディレクトリにあると考えるのは難しいです。したがって、絶対パスやJava 8以外のライブラリへの参照が存在する可能性はまだあります。信じる代わりに*をチェックするべきです。 – Holger