native与DLL文件

本文介绍了Java Native Interface(JNI)及其与C/C++代码交互的原理。通过使用`native`关键字,Java方法可以调用C/C++实现的DLL动态链接库。JNI的工作流程包括javah生成C头文件,C编译链接生成DLL,最后由Java的System.loadLibrary加载并执行。DLL文件是动态链接库,存储了程序的函数实现,允许程序按需加载函数,减少资源占用。
摘要由CSDN通过智能技术生成
初次见到

private native void start0();

native是什么?

即JNI,Java Native Interface (Java本地接口),Java平台提供的用户和本地C代码进行交互操作的API。
Java code < ------ > C/C++ code
主要用于Java与C/C++联合开发的时候。使用native关键字说明这个方法是原生函数,也就是这个方法使用C/C++语言实现的,并且被编译成了DLL,由java去调用。这些函数的实现体在DLL中,JDK的源代码并不包含。对于不同的平台也是不同的。这也是Java的底层机制,实际上Java就是在不同的平台
上调用不同的native方法实现对 “操作系统” 的访问。

native运行流程?

当java语言中出现native时,说明以不在Java范围内,需要调用底层的C语言接口实现,进入本地方法栈,由javah命令调
用java方法的JNI接口(本地方法接口)生成c/c++头文件(.h文件),经过C编译器和链接器(.c和.cpp)编译并且调用动态链接库(DLL文件),
然后由JVM的执行引擎执行DLL文件( 具体由Java中的System.loadLibrary()方法加载DLL文件 ),最终完成此次运行。

native原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝朋友丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值