解决linux环境下no XXX in java.library.path问题
最近开发一个结合海康摄像头的sdk项目,真是狗。遇到一个问题,在windows上能跑,在linux上就一直跑不起来。
首先发现在windows上装了海康的一个叫MvCamera的软件,所以系统中是有dll文件的。于是笔者就在linux上也下载了这个软件。
当然他是一个压缩包。解压后我放到了/usr/lib目录下。
接下来就是解决问题的步骤
-
使用-Djava.library.path=/user/lib 指定java.library.path的路径,将so文件放到指定路径下 如: java -Djava.library.path=/user/lib -jar 你的项目.jar
-
System.getProperty(“java.library.path”)获取库路径再将so文件放入到输出的路径中的一个
-
如果前两个死活还是找不到文件,可以放到 (你的JAVA安装路径){JAVA_HOME}/jre/lib/amd64/ 下面
-
出现错误xxx.so 无法打开共享对象,该文件或目录不存在时,vim /etc/profile 最后添加上export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib(冒号后面的路径为so文件存放的路径)
解决这个问题:
(1)在系统中查找这个文件(当然要保证系统中已经有这个.so文件,只是查找路径没有设置正确而已):
sudo find / -name libjson_linux-gcc-4.6_libmt.so //其中“/”应该是根目录
结果:/home/liu/Desktop/jsoncpp-src-0.5.0/libs/linux-gcc-4.6/libjson_linux-gcc-4.6_libmt.so
(2)将.so文件路径的目录添加到/etc/ld.so.conf
sudo vim /etc/ld.so.conf
文件末尾新添加一行,/home/liu/Desktop/jsoncpp-src-0.5.0/libs/linux-gcc-4.6
(3)使得修改生效
sudo /sbin/ldconfig
来源地址:https://blog.csdn.net/qq_41358175/article/details/129021009