Java基于 SpringBoot 的 JNI 本地方法库加载器
2021-03-27
4 min read
# jni
# so
# dll
# jnilib
# dylib
# MacOS
# Linux
# Windows
# Java
# spring
# springboot
由于Java跨平台需要,自行写了一个跨平台的 JNI 本地方法库加载器。
简单实现逻辑
- 根据环境变量
os.name
,判断当前系统属于Windows
,Linux
还是MacOS
- 如果是
Linux
,继续判断是CentOS
还是Debian
- 读取 jar 包中的库文件
- 根据文件名后缀
dll
、so
、jnilib
和dylib
,过滤符合当前平台的库文件 - 将当前平台的库文件复制到系统临时目录
java.io.tmpdir
- 使用
System.load
加载库文件