linux - linux共享库中的JNI代码

标签 linux java-native-interface

我有一个移植到 linux 的 c++ 库。 现在我要添加一个 JNI 代码,这样我就可以添加一个 java 包装器。 问题是: 将 JNI 添加到同一库是否会影响用户的 C++ 应用程序 --> 如果未安装 Java,它是否会变得无法工作...等(因为它链接到 jni.h 中的某些代码和其他内容)?

最佳答案

如果您将JNI 添加到您的库中,它不会影响当前库。 JNI 是接口(interface)和回调的集合,使您的库可以被 JVM 使用。如果没有 JNI,您的库将无法在 JVM 中使用。

当您添加 JNI 时,您的库会变大,并且会导出更多符号。

通过将 JNI 添加到您当前的库,这意味着您的库可以用作普通库,同时可以从 JVM 加载。

关于linux - linux共享库中的JNI代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28177101/

相关文章:

linux - 创建可引导的 .img 文件

regex - 如何在 linux 中使用 sed 从单词的结尾和开头删除标点符号?

linux - 错误 CoreDNS 所需的最低内核版本为 4.14.35 (UEKR5)

java - JNI方法CallObjectMethod、CallObjectMethodV和CallObjectMethodA有什么区别?

java - 从 C 尽快填充 Android 位图中的数据

crash - 如何在 jvm GCTaskThread 中调试 SIGSEGV

java - 在 JNI 中从 C++ 代码创建 New<PrimitiveType>Array 时如何释放 <PrimitiveType>Array 的缓冲区?

c - setcontext 中的段错误

linux - 如何从 Linux 内核读取 I2C EEPROM - ARM TI AM3352

java - 将 C++ double* 转换为 Java double