我在我的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)
我不明白问题出在哪里。 有人可以帮助我吗?
我以前也遇到过这个问题。事实证明我的机器上有 2 个 javac 程序。 它们位于
/usr/bin/javac
和 /bin/javac
。我的系统使用的是 /bin/javac
系统。对我来说正确的道路是/usr/bin/javac
。删除 /bin/javac
有帮助
我遇到了同样的问题,只需关闭 CentOS VM 然后重新启动,问题就消失了。然后再次输入javac命令进行检查。
作为普通的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) 系统中,让我向您展示魔法。
为了方便起见,将java可执行文件备份到
/opt/java
。
将 JRE 移至其他位置。
用
LD_LIBRARY_PATH
修复它。
用
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 运行时环境。