JNIを使用してC++ライブラリに基づいてJava実装を作成したいとします。残念ながら、私はjavaで共有ライブラリを使用したい場合、それは見つけることができません。この共有ライブラリの問題は、別の共有ライブラリにリンクすることです。私は2つの異なるケースがあります(しかし、使用すべきではありません)。Javaで共有ライブラリをロードする際の問題
Ana libは常に静的でなければなりません。 Claraのlibは常に共有する必要があります。これは、Bobのlibが静的な場合に機能しますが、共有する必要があり、AnaとClaraを含める必要があります。
ケース1(正しく動作し、正しいjava.library.pathにロードできます)。
sharedlibJava.soリンク:staticlibAna.a staticlibBob.a sharedlibClara.so
ケース2(java.library.pathには正しいであっても、それがロードできないため、動作しません)。 sharedlibBob.soリンク:staticlibAna.aとsharedlibClara.so(基本的なC++実装をテストし、それが問題なく動作します)
sharedlibJava.soリンク:sharedlibBob.so(Javaの実装は、この新しい共有ライブラリを使用して利用可能であるべきです)。
問題は、ライブラリーをロードしようとすると、正しいjava.library.pathで見つからなくてもそこにあることです。
この問題に関するフィードバックは本当にありがたいです。