遇到UnsatisfiedLinkError的时候,说明找不到这个so库:
假设的确已经配置了正确的路径和查找方法,可以参见https://xiangyang.blog.csdn.net/article/details/90259838
那么需要考虑是否IDEA在打包的时候把Resource下的so库打包进了jar包
通过使用jar
命令查看jar包内容
jar -tf 包名.jar | grep so库名称
如果能顺利打印出类似于以下的路径,说明打包的时候顺利添加了该动态库,反之则没有
如果确认没有添加该包,需要在maven的build部分中添加以下信息:
<build>
<resources>
<resource>
<directory>src/main/resource</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.so</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
重点在于<include>**/*.so</include>
,这样就能将so库打进jar包了
说到底还是Springboot半路出家,需要更多学习才行……
参考链接:https://blog.csdn.net/qq_38588736/article/details/106425504
https://www.jianshu.com/p/0226a2a5a836
https://stackoverflow.com/questions/2937406/how-to-bundle-a-native-library-and-a-jni-library-inside-a-jar
https://stackoverflow.com/questions/57466273/filenotfoundexception-in-spring-boot-jar-but-the-file-is-present