PATH를 사용하여 .bashrc를 업데이트하는 방법

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

왜인지 정말 알고 싶어요.

답변1

작동하지 않는 이유 는 와 아무 관련 이 없기 $JAVA_HOME때문입니다 . 바이너리( , 등 )는 모두 디렉토리 자체 가 아닌 에 있습니다 .$JAVA_HOME$JAVA_HOME/binjavajavacjavawsbin$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"

작동합니다.

관련 정보