Linux如何设置java.library.path
作者:Rich_Billions
Linux设置java.library.path
1、定义一个目录放置自定义的SO文件
[root@slave1 os]# pwd /usr/local/tradeapi/os [root@slave1 os]# ll 总用量 11860 -rwxr-xr-x. 1 root root 1419392 10月 12 14:14 libiconv.so.2 -rw-r--r--. 1 root root 2020538 10月 12 14:11 libthostmduserapi.so -rw-r--r--. 1 root root 4706747 10月 12 14:11 libthosttraderapi.so -rw-r--r--. 1 root root 3986800 10月 12 14:11 libthosttraderapi_wrap.so
2、修改/etc/profile
vim /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_171 export MAVEN_HOME=/usr/local/maven/maven3 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin 加入 LD_LIBRARY_PATH=/usr/local/tradeapi/os export LD_LIBRARY_PATH source /etc/profile
解决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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。