JNI,是Java Native Interface的简称,中文是“Java本地调用”。通过这种技术可以做到以下两点:
- Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。
- Native程序中的函数可以调用Java层的函数,也就是说在C/C++程序中可以调用Java的函数。
本篇博客带给童鞋们以下内容,学习内容来自(传智播客),经由小巫总结整理:
- javah工具的用法
- 按照C/C++头文件来编写C/C++源文件
- 将C/C++源文件编译成动态连接库(DLL)
- 在Java程序中引入动态连接库等知识
JNI并不是什么特别神奇的东西,当初SUN推出它的目的是为了屏蔽不同操作系统平台的差异性,通过Java语言来调用Native语言的功能模块,避免重复制作车轮,最主要是这两个目的。
最简单的Java调用C/C++代码,有以下步骤,童鞋们最好详细阅读,避免出现相应的错误:
- 首先在Java类中声明一个native的方法
- 使用Javah命令生成native方法的声明的C/C++头文件
- 按照生成的C/C++头文件来编写C/C++源文件
- 将C/C++源文件编译成动态链接库(DLL)
- 将DLL文件加入到PATH环境变量下
- Java类中加载DLL,然后调用声明方法
我们现在一步一步把整个流程熟悉一遍,在Eclipse中创建一个Java项目:
笔者创建了一个命为:TestNativeCode的项目,新建包名为com.wwj.nativecode,新建类为TestNativeCode
接着在TestNativeCode类当中声明我们的本地方法:
package com.wwj.nativecode; public class TestNativeCode { // 声明本地方法 public native void sayHello(); public static void main(String[] args) { // // 加载动态链接库 // System.loadLibrary("nativeCode"); // TestNativeCode nativeCode = new TestNativeCode(); // nativeCode.sayHello(); } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机JNI实现最简单的JAVA调用C/C++代码
后端开发2023-05-31
Android JNI c/c++调用java的实例
后端开发2023-05-31
C++简单实现shared_ptr的代码
后端开发2024-04-02
c++实现简单随机数的代码
后端开发2024-04-02
C++代码调用C#代码的过程怎么实现
后端开发2023-06-17
SQLSERVER调用C#的代码实现
后端开发2023-01-30
C#简单实现IOC容器的示例代码
后端开发2024-04-02
C语言代码实现简单的扫雷小游戏
后端开发2024-04-02
C语言代码实现简单三子棋游戏
后端开发2024-04-02
C#如何用代码实现飞行棋简单小游戏
后端开发2023-06-14
C++实现一个简单的线程池的示例代码
后端开发2024-04-02
C语言实现堆的简单操作的示例代码
后端开发2022-11-13
C++ map的简单使用实现
后端开发2024-04-02
简单聊聊C++中回调函数的实现
后端开发2024-04-02
C/C++实现线性单链表的示例代码
后端开发2024-04-02
C语言实现简单的贪吃蛇游戏的示例代码
后端开发2023-01-12
咦!没有更多了?去看看其它编程学习网 内容吧