Rhel
如何使用 PATH 更新 .bashrc
我在我的 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
我真的很想明白為什麼?
它不起作用的原因
$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"
它會起作用的。