ホームページ  >  記事  >  Java  >  私の JNI プロジェクトが依存ライブラリを見つけられないのはなぜですか?

私の JNI プロジェクトが依存ライブラリを見つけられないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-21 04:48:13752ブラウズ

Why Can't My JNI Project Find Dependent Libraries?

UnsatisfiedLinkError への対処: JNI プロジェクトで依存ライブラリが見つかりません

Java Native Interface (JNI) プロジェクトを開発するときに、エラー: 「java.lang.UnsatisfiedLinkError: C:...path...mylib.dll: 依存ライブラリが見つかりません。」このエラーは、Java 仮想マシン (JVM) が JNI ライブラリに必要な共有ライブラリ (DLL) を見つけられないことを示します。

問題の解決

問題を解決するには場合は、次の解決策を検討してください:

  1. 適切なライブラリ パスを確認します: 依存ライブラリ (libsndfile-1.dll など) がメイン ライブラリと同じディレクトリにあることを確認します ( mylib.dll)、または Windows PATH 環境変数にリストされているディレクトリにあります。 JVM は、このライブラリ パスに基づいて必要な依存関係を見つけます。
  2. メソッド名のマングリングを修正: JNI ライブラリ内のメソッド名が、対応する JNI ヘッダー内のメソッド名と正確に一致していることを再確認します。ファイル。 Visual Studio コンパイラはメソッド名をマングルする可能性があるため、一貫した名前を生成するために必ず適切なリンカー フラグを指定してください。
  3. ライブラリ パスを明示的に指定する: 前のメソッドが失敗した場合は、Java を明示的に設定できます。 .library.path システム プロパティを、依存ライブラリを含むディレクトリに設定します。これにより、デフォルトのライブラリ検索パスが上書きされます。

macOS 上の Visual Studio 2010 では、Windows XP でテストしているため、ターゲット プラットフォームを Windows に設定する必要があります。 Windows で開発を行う場合は、それに応じてターゲット プラットフォームを設定します。

追加のヒント

詳細については、「The JNI Book」または Oracle HTML バージョンの JNI ブックを参照してください。 JNI仕様。コマンド「java -XshowSettings:properties -version」を使用して、共有ライブラリの検索パスを識別することもできます。

以上が私の JNI プロジェクトが依存ライブラリを見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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