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"
작동합니다.