c/c++语言开发共享将C链接到JNI,独立于JDK版本

我通过JNI在我的C程序中调用Java应用程序。

安装了JDK 1.8后,我的系统上有以下JNI .so库:

 /usr/java/jdk1.8.0_51/jre/lib/amd64/jli/libjli.so /usr/java/jdk1.8.0_51/jre/lib/amd64/server/libjvm.so 

要使ldconfig知道这两个文件,我可以在/usr/lib64/创建指向它们的链接,或者创建一个列出它们的/etc/ld.so.conf.d/java.conf文件。

这允许我按如下方式编译我的C代码:

 gcc -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/  -L/usr/java/jdk1.8.0_51/jre/lib/amd64/jli  -L/usr/java/jdk1.8.0_51/jre/lib/amd64/server/  callSomeJava.c -ljvm -ljli 

这感觉就像系统黑客而不是开发和部署JNI代码的可靠方式。 JDK并不觉得它以鼓励依赖它们的方式将这些库暴露给操作系统。

我的问题如下:

      以上就是c/c++开发分享将C链接到JNI,独立于JDK版本相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522269.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐