我已经在 RedHat Linux 系统上安装了新的 JRE。
lsb_release -i -r
Distributor ID: CentOS
Release: 6.5
我已经更新了指向所需 Java 安装的符号链接:
ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 21 Jul 21 16:27 /usr/bin/java -> /usr/java/jre1.8.0_51
ls -l /usr/java/latest
lrwxrwxrwx. 1 root root 21 Jul 21 15:34 /usr/java/latest -> /usr/java/jre1.8.0_51
ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 20 Jul 21 17:42 /etc/alternatives/java -> /usr/java/glassfish4
但是,现在当我跑步时:
java -version
-bash: java: command not found
环境变量:
env
...
JAVA_HOME=/usr/java/latest
...
所以我将以下行添加到 .bashrc 中:
export PATH="$PATH:$JAVA_HOME"
但仍然得到:
java -version
-bash: java: command not found
已解决 - bashrc 中的正确行:
export PATH=$PATH:/usr/java/jre1.8.0_51/bin/
我不知道为什么,但使用指向符号链接的环境变量export PATH="$PATH:$JAVA_HOME"
不起作用,即使它正确解析:
ls -l /usr/java/latest
lrwxrwxrwx. 1 root root 21 Jul 21 15:34 /usr/java/latest -> /usr/java/jre1.8.0_51
我真的很想明白为什么?
答案1
它不起作用的原因$JAVA_HOME
是它$JAVA_HOME
与$JAVA_HOME/bin
.您的二进制文件(java
、javac
、javaws
等)都可以在bin
您的 目录中找到$JAVA_HOME
,而不是在其$JAVA_HOME
本身中。
您问题中的工作路线指向/usr/java/jre1.8.0_51/bin
;变量JAVA_HOME
指向/usr/java/latest
,这是到 的符号链接/usr/java/jre1.8.0_51
。这显然不是同一个地方。
如果你使用
export PATH="$PATH:$JAVA_HOME/bin"
它会起作用的。