JNi初探-环境搭建

    最近想了解下jni,因此需要搭建一下基于win10的开发环境,那本文主要讲win下jni开发c/c++环境的搭建,因为我们知道jni主要是起到一个桥梁的作用,主要的实现是c/c++程序,java来调用jni很简单,只需要了解下javah,因为发现很多jni文章都在说给提供so库的过程,而没有说dll如何提供,而恰巧本人是win10系统,故阐述下jni尝试的问题。

1、搭建Clion开发环境

    首先搭建开发环境,本人有过一篇基于wsl搭建开发环境配置wsl的ssh服务开机启动文章,当然那篇文章主要是讲如何设置wsl的ssh服务开机自动启动,不多说,先上图,下图为Clion需要的开发环境配置。

    该图就是Clion的主要配置,即图中1,2,3所示,主要配置Toolchains,Toolchains有4种方式,MinGW、Cygwin、WSL、Remote Host,这4个软件我们就是要一下它们给提供的Make、C Compiler、C++ Compiler套件,为什么说就这3个呢,因为Clion内已经集成了CMake、GDB,当然也可以自己在本地配置,那重点来了这4个软件哪来的,MinGW、Cygwin这两者是一个组件和套件的关系(当然不能这么说,方便理解),WSL是win10的Linux子系统,Remote Host故名思意就是远程的Linux主机,至于这4个的安装就不多说了,网上随便找找就有,当然最简单的就是Remote Host,为什么这么说呢,随便搞个云服务器就ok了,这里我们说说MinGW吧,为什么说它呢,简单了我这是win10系统,根本来说我的java需要jni给我来个dll而不是so

2、dll库生成

     重点来了,dll库咋来的,如上图安装好MingGW配置好Clion后,就只需要把javah生成的java程序的.h头文件以及jdk的jni.h、jni_md.h复制到项目里,当然也可以做其它的处理,比如放到系统库默认搜索路径或在CMakeLists文件中配置,目的只是让头文件的include有效,注意创建项目时区分下静态库和共享库,接下来就是写个c/c++的实现.c/.c++,然后build一下dll就来了,如下图。

 3、java程序System.loadLibrary("cygc_share_lib")

    java程序cygc_share_lib加载路径:1、jre\bin 2、委托ClassLoader去加载 3、系统变量。

    时间紧张,暂时没来得及到java程序中去,调一下这个dll,可能还有些其它问题,大家可自行研究,到这里想说点其它的,比如CMake,make,gcc,g++,gdb这些都是些什么啊,说这么多什么呢,就是其实可以看看c的编译过程,GNU自由软件,系统调用等等相关知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&一步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值