配置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 路径不变
有的话可以先删除
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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 球半足球分析,瑞典超:哥德堡 VS 代格
- 下一篇: linux多线程_免费Linux下载工具