使用JNA时碰到的坑:Can't obtain InputStream for linux-x86-64/libXXX.so

原创
2021/04/19 15:24
阅读数 4.3K

比如使用JNA时需要动态加载 libsgd.so,使用Native.load("sgd",FmSGDLibrary.class) 时总是会报   Can't obtain InputStream for linux-x86-64/libsgd.so 的错误,虽然通过设置环境变量可以解决问题  :

#/tmp/lib/ 是so文件所在路径,自由调整
export LD_LIBRARY_PATH=/tmp/lib/:$LD_LIBRARY_PATH  

但是这个方式也太不灵活了,能不能只通过java代码就能动态加载动态链接库呢?

答案是有的,通过Native.loadlibrary使用绝对路径加载就行了。

Native.loadLibrary("/tmp/lib/libsgd.so", FmSGDLibrary.class);

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部