JNI工程搭建及编译
2024-08-30 09:53:06
JNI工程搭建及编译
- 建立Java工程
在具有C/C++比编译器的Eclipse中进行工程的创建,先创建一个简单的Java project,选项和一般同,这里仅仅需要将要调用的C/C++函数声明为native,注意C/C++中的数据类型Java中的转换. - 生成Java工程的头文件
将Java工程中的类文件和本地函数的声明定义好后,使用命令行,win+r,在Java工程中src文件夹下,即Java的包的第一层,使用javah命令:javah -jni java包名+类名
编译得到一个.h
类型的文件,其余的名字应该类似包名加类名,不过两者以_
下划线隔开. - 建立一个C/C++工程.
注意左下的Project type中选择Sharded Library类型,将源码和头文件一一添加之后,将上面产生的.h
文件考入到工程中,根据.h
文件中的函数声明修改C/C++工程的实现.
- 将
jni.h
头文件加入到C/C++工程中.
对工程右键选中Properties
选项,选择C/C\++ Build
选项卡中的GCC C Complier
下的Include
选项中中增加:{$JAVA_HOME}/include
和{$JAVA_HOME}/include/win32
两个路径.
- 编译生成dll文件
在编译的时候注意,不是直接debug运行,先在工程中右键生成target再编译.将得到的dll放入到Java工程的根目录,根目录即同src文件夹所在的目录,自然是在path下,在Java中先使用静态代码块调用system.loadlibrary("libxxx"),然后就可以正常使用了.
ERROR:
- 编译C/C++工程的时候报如下错误:
在选项中的Miscellananeous加上-std=11即可
最新文章
- redis缓存
- CSS学习总结(二)
- python之打包相关
- 中国省市 JS代码
- mysql之游标
- 团队作业week2-软件分析和用户需求调查
- 来自投资银行的20个Java面试题
- Linux 定时执行shell脚本_crontab
- 我使用过的Linux命令之date - 显示、修改系统日期时间
- 用java.util.Observable实现Observer模式
- centos7和centos6通过yum安装JDK1.8
- 解决SpringMVC中文乱码问题--这是前端传参数到服务器
- redis详解(三)-- 面试题(转载)
- Js 编程题汇总
- 【6集iCore3_ADP触摸屏驱动讲解视频】6-3 底层驱动之液晶显示
- JDK1.8快速入门
- 2018.09.07 loj#10166 数字游戏(数位dp)
- ios 7.1企业证书无线安装
- Git使用规范(三)
- Cisco路由器端口
热门文章
- A - Vasya and Socks
- 1.5 Hive初步使用和安装MySQL
- Flutter实战视频-移动电商-15.首页_商品推荐模块编写
- UVaLive 2965 Jurassic Remains (状态压缩)
- PLSQL导入导出oracle表 表空间
- ssl 证书申请
- web前端_Vue框架_设置浏览器上方的标题和图标
- 骨骼动画反向动力学(IK)的实现
- ebullient(2018.10.25)
- 14.PTD与的基址