配置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 代格
- 下一篇: 成人大专计算机专业总结,成人大专自我鉴定