RHEL 7 서버가 있습니다. 설치된 자바 버전은jdk1.8.0_151
# ls -l /usr/java
total 0
drwxr-xr-x. 8 root root 255 Apr 24 14:10 jdk1.8.0_151
JAVA_HOME
위치를 설정 하고 변수 bin
에 디렉터리를 추가합니다 .PATH
/etc/profile
# grep JAVA_HOME /etc/profile
export JAVA_HOME="/usr/java/jdk1.8.0_151/"
export PATH=$JAVA_HOME/bin:$PATH
오류 메시지가 계속 java -version
표시되고 echo $JAVA_HOME
출력이 표시되지 않습니다.
# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
#
# echo $JAVA_HOME
#
이 문제를 어떻게 해결할 수 있나요?
고쳐 쓰다
다음 명령을 실행하면 java -version
사용자 echo $JAVA_HOME
에게는 유효 igwuser
하지만 루트로 로그인하면 유효하지 않습니다.
export PATH=/usr/java/jdk1.8.0_151/bin:$PATH
export JAVA_HOME="/usr/java/jdk1.8.0_151/"
로그인하면 root
,
[igwuser@dep4 ~]$ sudo su
[root@dep4 igwuser]# java -version
bash: java: command not found...
[root@dep4 igwuser]# echo $JAVA_HOME
[root@dep4 igwuser]#
루트로 로그인하면 왜 작동하지 않나요?
업데이트 2
PATH
로그인 및 로그아웃하면 변수가 재설정됩니다. 이것이 문제가 될 것입니다.
[root@dep4 igwuser]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
[root@dep4 igwuser]#
[root@dep4 igwuser]#
[root@dep4 igwuser]# export PATH=/usr/java/jdk1.8.0_151/bin:$PATH
[root@dep4 igwuser]# echo $PATH
/usr/java/jdk1.8.0_151/bin:/sbin:/bin:/usr/sbin:/usr/bin
[root@dep4 igwuser]#
[root@dep4 igwuser]# exit
exit
[igwuser@dep4 ~]$ sudo su
[root@dep4 igwuser]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
[root@dep4 igwuser]#
답변1
자꾸 잘못된 파일( /etc/profile
)을 수정하고 있어요. /etc/bashrc
문제를 해결 하려면 다음 줄을 추가하세요 .
export JAVA_HOME="/usr/java/jdk1.8.0_172-amd64/"
export PATH=$JAVA_HOME/bin:$PATH
감사해요
업데이트: 아래 @jsbillings의 의견을 참조하세요.
/etc/profile.d/
가장 권장되는 방법은 사용자 정의 스크립트를 만들고 위의 줄을 추가하는 것입니다.
답변2
각 사용자는 자신만의 변경 가능한 환경을 가지고 있습니다. 따라서 사용자(루트)마다
PATH
합계 변수 값이 다른(루트가 아닌) 사용자마다 다른 것이 정상입니다 .JAVA_HOME
환경 변수를 저장하는 지속성 방법:
파일을 편집하여 환경 변수를 추가합니다
~/.bashrc
.vim ~/.bashrc
다음을 사용하여 변경한 내용을 로드합니다
~/.bashrc
.source ~/.bashrc