Java:加载共享库时出错:libjli.so

Ser*_*dez 6 java

我尝试安装 openjdk6、openjdk7、oracle8……但是当我想执行 java 时总是出现同样的错误,例如java -version

java:加载共享库时出错:libjli.so:无法打开共享对象文件:没有这样的文件或目录

我尝试使用符号链接试图识别,libjli.so但没有用

卸载所有版本后,按照此处显示的步骤如何完全卸载 Java?,再次安装,不能使错误消失。即使我再次卸载它,如果我在终端中写入java -version它仍然会抛出同样的错误。

我正在和用户 sudo 一起做这一切。

谢谢

编辑:使用 Ubuntu 14.04 LTS 服务器

编辑 2:安装 Openjdk7、Oracle7 和 Oracle8,使用update-alternatives --config java告诉我(用西班牙语,但我会尝试翻译,3 行信息)

/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/javaNothing to configure中的一组 java 链接中只有一种选择。”

“更新替代:警告:/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java由于 Java 链接组已损坏,强制重新安装替代”

“更新替代:警告:/usr/bin/java不会被链接取代”

小智 7

我在 chroot 环境中遇到此问题,并通过此操作修复它

mount --bind /dev /myroot/dev
mount --bind /proc /myroot/proc
Run Code Online (Sandbox Code Playgroud)


Ser*_*dez 5

终于找到了解决办法:

rm /usr/bin/java
update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

现在它通过删除该二进制文件来工作,它导致了问题。不知道是否update-alternatives有任何影响,但最后的警告没有显示。


小智 5

当我对 java 可执行文件进行硬链接并尝试执行它时,我遇到了这个问题。我假设它正在使用可执行二进制文件的相对路径来查找其库。

我尝试了这两个选项,每个选项都对我有用:

  • 将硬链接放在与 java 二进制文件相同的目录中并从那里运行它(在我的例子中为 /usr/lib/jvm/openjre-8/bin )
  • 创建和使用符号链接而不是硬链接(即 with ln -s $(which java) /usr/bin/${my_binary_name}