《Java平台体系》——第二章 JVM——实战:Java调用本地代码的例子

□ 首先编写Java代码,如下:

《Java平台体系》——第二章 JVM——实战:Java调用本地代码的例子


□ 编译完之后,我们用JDK自带的javah(命令:javah pkg.Clas)来生成C头文件。将会生成类似如下的头文件(这部分内容我写作的假设是大家了解C/C++编程和相应的动态链接库技术,所以我不会作更多的解释,我的初衷是让了解C/C++的朋友快速了解JNI):

《Java平台体系》——第二章 JVM——实战:Java调用本地代码的例子


□ 编写本地代码(我这里用C)。代码如下:

《Java平台体系》——第二章 JVM——实战:Java调用本地代码的例子


□ 将上面代码在Windows下编译成pkg_Cls.dll,并且将pkg_Cls.dll放到运行Java程序的根目录。这块最容易的出问题的是导出函数名称是否符合约定,例如在编译__stdcall和__cdecl声明的函数时将会有不同的命名约定,从而导致不符合JNI的命名约定,所以可能会出现对应不上问题,解决此问题的方法可以将jni_md.h中加入如声明#define JNICALL __cdecl。

□ 运行Java类pkg.Cls。

OK,这算是一个完整的演示Java如何调用本地库的流程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值