Name Last Update
src/main Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
pom.xml Loading commit data...

服务简介

这个项目的目的是集成所有自定义JNI,然后其他服务通过http进行调用

使用流程

  1. 写好 native 方法,例如: java public class HeatMapUtil { public static native Point transAxis(int cameraType, Point centerPoint, Point marginPoint, Point[] cameraPoints, Point[] mapPoints, Point inputPoint); }
  2. 编译出 class 文件
  3. 在最外层包的目录下执行命令 javah xxx,例如: ```shell 在 com 所在的目录下执行 javah com.viontech.keliu.jni.HeatMapUtil

java10以上的版本移除了javah,需要用 javac -h 命令

4. 将编译出的 `.h` 文件交给其他组人员,由他们实现方法
5. 实现方法后在需要的平台进行编译得到动态链接库,windows 下编译出 `.dll` 文件, linux 下编译出 `.so` 文件
6. 将动态链接库放入 `resources/lib` 目录下面的 `dll` 或 `so` 目录下
7. 将动态链接库依赖的文件放入 `predll` 或 `preso` 目录下
8. 运行服务测试方法是否能成功

# 资料
- [JNI 在 SpringBoot 中的应用](https://www.javatt.com/p/24322)
- [SPRINGBOOT环境下JAVA调用C程序生成动态链接库(.SO文件),并调用(基于JNI,UBUNTU)](https://www.freesion.com/article/8856114791/)
- [JNI返回Java对象](https://juejin.cn/post/6844903919882256391)
- [JNI 在 SpringBoot 中的应用](https://blog.csdn.net/lj402159806/article/details/86169807)
- [如何使用JNI从C中的jobject获取值](http://www.voidcn.com/article/p-rneljcrp-bxy.html)
- [jni-jobject操作对象](https://blog.csdn.net/jisuanji198509/article/details/81210727)
- [JNI 数据类型转换](https://blog.csdn.net/tantion/article/details/84248654)