将JNI库打包入jar文件
在Java开发时,我们有时候会接触到很多本地库,这样在对项目打包的时候我们不得不面临一个选择:要么将库文件与包好的jar文件放在一起;要么将库文件包入jar。
将一个不大的项目包成一个jar有诸多发布优势,本次将分享一个将JNI包入jar的方法。
[实现思路]
将JNI库(dll、so等)包入jar后,我们无法通过路径来访问它们,而库的读取依赖一个java.library.path下对应名称的外部库文件,我们仅仅需要在调用JNI前将其由jar包释放出来,这类似于文件的拷贝过程。
[部署位置的选取]
java.library.path并不是一个固定的位置,使用下面代码可以打印出来:
System.out.println(System.getProperty("java.library.path"));
例如在本人的计算机上,结果是这样的:
D:\Program Files (x86)\Java\jre7\bin;C:\windows\Sun\Java\bin;C:\wi