0
mavenを使用してjarにパッケージ化されたJavaライブラリ(たとえばproject A
)にネイティブライブラリ(Linux共有ライブラリmyLib.so
)を含めるようにしました。私は、jarファイル(jarファイルのトップレベル)にリソースとしてネイティブライブラリを追加しました。jarと一緒に出荷されるJNAライブラリをロードする
今、別のプロジェクト(project B
)でこのライブラリを使用しようとしています。 Javaライブラリからオブジェクトのメソッドを呼び出すと、ライブラリを見つけることができません。プロジェクトBIコールで
libararyにアクセスするためのproject A
ニーズから
org.projectA.MyObject.initLib();
MyObject
のようなもの:
public static void initLib() {
MyLib lib = (myLib) Native.loadLibrary("myLib.so"),MyLib.class);
}
だから、私は私のjarファイルと共有ライブラリを出荷することができますか私が使用する必要がありますかリソースをストリームとして取得し、最初にファイルシステムに書き込むような回避策?
JNAには、jarファイルから解凍してディスクに書き込むメソッドが用意されています。 ['Native.extractFromResourcePath()'](http://java-native-access.github.io/jna/4.2.1/com/sun/jna/Native.html#extractFromResourcePath-java.lang.String-)を参照してください。 。 – technomage