欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

配置linux的jdk报错error while loading shared libraries: libjli.so

发布时间:2024/1/8 linux 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 配置linux的jdk报错error while loading shared libraries: libjli.so 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

问题描述: 


执行jar命令,javac命令执行报错 
javac: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory 

 

事情起因经过

配置jdk 都可以眯着眼配置了,然而今天配置阿里云服务器发生了意外,差点啪啪打脸,地发现有一个依赖的so文件从来没找见过,也没有了解过,最后发觉阿里云服务解压缩少好多东西,其中就少了 /jdk1.8/lib/amd64/jli/libjli.so 也不知道是啥东西,手记一下,万一下次遇到也是经验。

解决方案: 

首先查看下解压后的jdk目录下东西是否完整(我就是tar -zxvf 命令解压丢了好多东西,连jre都没有)

然后查看/usr/bin 中是否存在java软链(相当于windows快捷方式)


没有的话,创建一下建立软链 
/opt/jdk1.8/  这是我的路径,你要根据自己的路径替换,后面的 /usr/bin  路径不变

ln -s /opt/jdk1.8/bin/javac /usr/bin/javac  ln -s /opt/jdk1.8/bin/jar /usr/bin/jar#/opt/jdk1.8/这是我的路径,你要根据自己的路径替换,后面的 /usr/bin路径不变

有的话可以先删除

rm -rf /usr/bin/javac  rm -rf /usr/bin/jar rm -rf /usr/bin/java

查找libjli.so文件 

find / -name libjli.so ldd /usr/bin/java linux-vdso.so.1 =>  (0x00007fffba769000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000038c4000000) libjli.so => not found libdl.so.2 => /lib64/libdl.so.2 (0x0000003da7c00000) libc.so.6 => /lib64/libc.so.6 (0x0000003da7400000) /lib64/ld-linux-x86-64.so.2 (0x0000003da6c00000)

其实这个so文件在java的安装包中是有的,只是没有添加了ld_path 里面,解决办法:

# rpm -ql jdk1.8.0_45|grep libjli /usr/java/jdk1.8.0_45/jre/lib/amd64/jli/libjli.so /usr/java/jdk1.8.0_45/lib/amd64/jli/libjli.so

然后,将/usr/java/jdk1.8.0_45/jre/lib/amd64/jli/  或 /usr/java/jdk1.8.0_45/lib/amd64/jli/ 添加到文件: /etc/ld.so.conf 中,然后执行ldconfig 即可

最后,libjli.so 是个啥玩意儿,为啥从来没找见过,却也从来没报错过?

或者是自己再配置一次jdk

总结

以上是生活随笔为你收集整理的配置linux的jdk报错error while loading shared libraries: libjli.so的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。