错误:找不到libjava.so,错误:找不到Java 2运行时环境

问题描述 投票:0回答:3

我在我的Linux服务器上卸载了java j2sdk1.4.2_12 java并安装了jdk1.6.0_21, 但是当我尝试运行任何脚本时,我收到以下错误

Error: could not find libjava.so 
Error: could not find Java 2 Runtime Environment.

我已经设置了

classPath
和路径,例如:

在 vi ~/.bashrc

export JAVA_HOME=/home/java/jdk1.6.0_21/
export PATH=$PATH:/home/java/jdk1.6.0_21/bin
export set CLASSPATH=/usr/java/j2sdk1.4.2_12/lib/mysql-connector-java-5.1.6-bin.jar:    /home/java/jdk1.6.0_21/jre/lib:/root/mis/mod:$CLASSPATH

ulimit -c unlimited

在 vi ~/.bash_profile

JAVA_HOME=/home/java/jdk1.6.0_21/
PATH=$PATH:$HOME/bin:$HOME/mis/mod:
PATH=/home/java/jdk1.6.0_21/bin:$PATH
CLASSPATH=$CLASSPATH:/home/java/jdk1.6.0_21/lib:.:
export JAVA_HOME
export PATH
export CLASSPATH
unset USERNAME

当我运行以下命令时

哪个java

/home/java/jdk1.6.0_21/bin/java

java-版本

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)

我不明白问题出在哪里。 有人可以帮助我吗?

java linux operating-system
3个回答
1
投票

我以前也遇到过这个问题。事实证明我的机器上有 2 个 javac 程序。 它们位于

/usr/bin/javac
/bin/javac
。我的系统使用的是
/bin/javac
系统。对我来说正确的道路是
/usr/bin/javac
。删除
/bin/javac
有帮助


0
投票

我遇到了同样的问题,只需关闭 CentOS VM 然后重新启动,问题就消失了。然后再次输入javac命令进行检查。


0
投票

作为普通的Linux进程,

java
进程会在JVM真正启动之前加载
libjava.so

有一个特殊的名称为

libjli.so
,它直接链接到
java
可执行文件。如果
java
找不到本关
JAVA_HOME
指定的JVM home,则
libjli.so
的位置将是
java
的lib路径。

所以,设置

LD_LIBRARY_PATH
可能会解决这个问题。


在安装了 Java 17 的 Linux Debian (ARM) 系统中,让我向您展示魔法。

  1. 为了方便起见,将java可执行文件备份到

    /opt/java

  2. 将 JRE 移至其他位置。

  3. LD_LIBRARY_PATH
    修复它。

  4. libjli.so
    移动又把它弄碎了。

    $ sudo cp /usr/bin/java /opt/java $ /opt/java -版本 openjdk版本“17.0.11”2024-04-16 OpenJDK 运行时环境(内部版本 17.0.11+9-Debian-1deb12u1) OpenJDK 64位服务器VM(构建17.0.11+9-Debian-1deb12u1,混合模式,共享) $ sudo mv /usr/lib/jvm $ /opt/java -版本 错误:找不到 libjava.so 错误:找不到 Java SE 运行时环境。 $ 导出 LD_LIBRARY_PATH=/usr/lib/jvm.bak/java-17-openjdk-arm64/lib $ /opt/java -版本 openjdk版本“17.0.11”2024-04-16 OpenJDK 运行时环境(内部版本 17.0.11+9-Debian-1deb12u1) OpenJDK 64位服务器VM(构建17.0.11+9-Debian-1deb12u1,混合模式,共享) $ sudo mv /usr/lib/jvm.bak/java-17-openjdk-arm64/lib/libjli.so /srv/ $ /opt/java -版本 /opt/java: 加载共享库时出错: libjli.so: 无法打开共享对象文件: 没有这样的文件或目录 $ ln -s /srv/libjli.so /usr/lib/jvm.bak/java-17-openjdk-arm64/lib/ $ /opt/java -版本 错误:找不到 libjava.so 错误:找不到 Java SE 运行时环境。 $ 导出 LD_LIBRARY_PATH=/srv $ /opt/java -版本 错误:找不到 libjava.so 错误:找不到 Java SE 运行时环境。

© www.soinside.com 2019 - 2024. All rights reserved.