ホームページ >Java >&#&チュートリアル >JNI を使用すると「UnsatisfiedLinkError: Can't find dependdependent library」というメッセージが表示されるのはなぜですか?

JNI を使用すると「UnsatisfiedLinkError: Can't find dependdependent library」というメッセージが表示されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-16 09:49:03673ブラウズ

Why am I getting

依存ライブラリが見つからない場合の JNI の「UnsatisfiedLinkError」に対処する

Java ネイティブ インターフェイス (JNI) は、Java 内からネイティブ コードを呼び出す機会を提供します。プログラム。ただし、「UnsatisfiedLinkError」が発生すると、「依存ライブラリが見つかりません」というわかりにくいエラー メッセージが表示されてイライラすることがあります。

「UnsatisfiedLinkError」のトラブルシューティング

この問題を解決するには、共有ライブラリの検索パスの範囲とクラスパスからの独立性を理解することが重要です。 Windows 環境では、ロードしようとしている JNI ライブラリは、現在の作業ディレクトリ、または Windows PATH 環境変数で指定されたディレクトリ内に存在する必要があります。

推奨される修正

  1. 共有ライブラリの場所を確認します: ネイティブ コードに必要なライブラリが存在することを確認します。 (libsndfile、MPR.DLL など) は適切なディレクトリにあります。
  2. メソッド名の矛盾を解決する: JNI ライブラリ内のメソッド名が Java ヘッダーで定義されているメソッド名と正確に一致することを確認します。 file.
  3. システム プロパティを設定します (オプション): Java 8 または後で、java.library.path システム プロパティを手動で設定して、共有ライブラリの検索パスを指定できます。

参考資料

詳細については、 JNI とその仕様については、

  • Oracle の HTML バージョンの JNI 仕様を参照することを検討してください。 https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/intro.html
  • Oracle フォーラムのバグ レポート: https://bugs.java.com/bugdatabase /view_bug.do?bug_id=8021805

以上がJNI を使用すると「UnsatisfiedLinkError: Can't find dependdependent library」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。