RHEL 7サーバーがあります。インストールされたJavaバージョンは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
ですが、rootとしてログインすると有効ではありません。
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]#
rootでログインするとなぜ動作しませんか?
アップデート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/
最も推奨される方法は、カスタムスクリプトを作成して上記の行を追加することです。