HelloWorld.libをビルドし、JNIを使用してJavaアプリケーションにロードすることは可能ですか?それとも、共有ライブラリだけで動作しますか?静的ライブラリをJNI経由でJavaにリンクすることはできますか?
私は、JNIのドキュメントに明確な答えを見つけることができなかった、「静的ライブラリ」への言及はありません。
HelloWorld.libをビルドし、JNIを使用してJavaアプリケーションにロードすることは可能ですか?それとも、共有ライブラリだけで動作しますか?静的ライブラリをJNI経由でJavaにリンクすることはできますか?
私は、JNIのドキュメントに明確な答えを見つけることができなかった、「静的ライブラリ」への言及はありません。
動的ライブラリである必要があります。幸いにも、静的ライブラリから動的ライブラリを構築することができます。それはDLL(Windowsの場合)にする必要があり、実行時にライブラリをロードするために
。静的ライブラリ(lib)をお持ちで、JNI経由で使用する必要がある場合は、ラッパーDLLを作成する必要があります
これをJVMにリンクする必要があり、その方法はありません。そのため、JNIは静的ライブラリではなく共有ライブラリで定義されています。
のJava 8は、静的 http://openjdk.java.net/jeps/178
チェックhttp://stackoverflow.com/questions/2349093/static-libraries-and-jni – BackSlash
@Harlandraka私が投稿する前に質問を見ましたが、リンクがあるネイティブライブラリをリンクしサポートしていますデッド。また、今質問 - コメントの代わりに直接質問 - 回答です。 – quimnuss