JNI工程搭建及编译

  1. 建立Java工程
    在具有C/C++比编译器的Eclipse中进行工程的创建,先创建一个简单的Java project,选项和一般同,这里仅仅需要将要调用的C/C++函数声明为native,注意C/C++中的数据类型Java中的转换.
  2. 生成Java工程的头文件
    将Java工程中的类文件和本地函数的声明定义好后,使用命令行,win+r,在Java工程中src文件夹下,即Java的包的第一层,使用javah命令:javah -jni java包名+类名编译得到一个.h类型的文件,其余的名字应该类似包名加类名,不过两者以_下划线隔开.
  3. 建立一个C/C++工程.
    注意左下的Project type中选择Sharded Library类型,将源码和头文件一一添加之后,将上面产生的.h文件考入到工程中,根据.h文件中的函数声明修改C/C++工程的实现.
  4. jni.h头文件加入到C/C++工程中.
    对工程右键选中Properties选项,选择C/C\++ Build选项卡中的GCC C Complier下的Include选项中中增加:{$JAVA_HOME}/include{$JAVA_HOME}/include/win32两个路径.
  5. 编译生成dll文件
    在编译的时候注意,不是直接debug运行,先在工程中右键生成target再编译.将得到的dll放入到Java工程的根目录,根目录即同src文件夹所在的目录,自然是在path下,在Java中先使用静态代码块调用system.loadlibrary("libxxx"),然后就可以正常使用了.

ERROR:

  1. 编译C/C++工程的时候报如下错误:

    在选项中的Miscellananeous加上-std=11即可

最新文章

  1. redis缓存
  2. CSS学习总结(二)
  3. python之打包相关
  4. 中国省市 JS代码
  5. mysql之游标
  6. 团队作业week2-软件分析和用户需求调查
  7. 来自投资银行的20个Java面试题
  8. Linux 定时执行shell脚本_crontab
  9. 我使用过的Linux命令之date - 显示、修改系统日期时间
  10. 用java.util.Observable实现Observer模式
  11. centos7和centos6通过yum安装JDK1.8
  12. 解决SpringMVC中文乱码问题--这是前端传参数到服务器
  13. redis详解(三)-- 面试题(转载)
  14. Js 编程题汇总
  15. 【6集iCore3_ADP触摸屏驱动讲解视频】6-3 底层驱动之液晶显示
  16. JDK1.8快速入门
  17. 2018.09.07 loj#10166 数字游戏(数位dp)
  18. ios 7.1企业证书无线安装
  19. Git使用规范(三)
  20. Cisco路由器端口

热门文章

  1. A - Vasya and Socks
  2. 1.5 Hive初步使用和安装MySQL
  3. Flutter实战视频-移动电商-15.首页_商品推荐模块编写
  4. UVaLive 2965 Jurassic Remains (状态压缩)
  5. PLSQL导入导出oracle表 表空间
  6. ssl 证书申请
  7. web前端_Vue框架_设置浏览器上方的标题和图标
  8. 骨骼动画反向动力学(IK)的实现
  9. ebullient(2018.10.25)
  10. 14.PTD与的基址