1. テスト結果:
環境変数を変更しても、source /etc/profile 以降では環境変数がまだ有効になりません。有効にするには再起動が必要です。
-------------------------------------------------- -------------------------------------------------- ---
2. テスト環境:
Huawei Yunyao サーバー 2 コア 2g、3M、centos7.9 x86_64
3. テストの準備:
1. 2 つの jdk バージョンを準備します: jdk-11.0.19_linux-x64_bin.tar.gz、jdk-8u144-linux-x64.tar.gz
ダウンロードリンク:
リンク: https://pan.baidu.com/s/1DB9uCaB6WssX95-RN7E7FA?pwd=tmzg
抽出コード: tmzg
リンク: https://pan.baidu.com/s/1x8ERCrv7cgB9J51RhnoSpw?pwd=6905
抽出コード: 6905
2. ファイルをサーバーにコピーします
ファイルをダウンロードしたら、/opt/software ディレクトリに置きます。
4. テスト手順
1.jdk11をインストールする
ファイルを解凍する
cd /opt/software
tar -zxvf jdk-11.0.19_linux-x64_bin.tar.gz
環境変数を構成する
vim /etc/profile
次の 2 行を追加します
# JAVA_HOME
export JAVA_HOME=/opt/software/jdk-11.0.19
export PATH=$PATH:$JAVA_HOME/bin
プロファイル設定ファイルを有効にする
source /etc/profile
Javaのバージョンを確認した結果は以下の通りです。
2.jdk8をインストールする
ファイルを解凍する
cd /opt/software
tar -zxvf jdk-8u144-linux-x64.tar.gz
3. 環境変数を使用して現在の JDK バージョンを変更します。
vim /etc/profile
JAVA_HOME アドレスを /opt/software/jdk1.8.0_144 に変更します。
変更前のバージョンを表示します。現時点では新しいバージョンは有効ではありません
java -version
4. source コマンドを使用して、環境変数を有効にします。テスト結果が期待どおりかどうかを確認する
source /etc/profile
うまくいかないことがわかりました!
環境変数が変更されていないか再度確認してください
more /etc/profile
設定ファイルが変更されたことを確認する
再認証が有効になりませんでした
サーバーを再起動します
reboot
再起動後、java のバージョンが 1.8 であることを確認します。再起動後に有効になります。
複数の検証の後、問題は 100% 再現可能です
5. 評価報告書
jdkのバージョンを切り替えて環境変数を変更すると、sourceコマンドが異常に使用され、このコマンドによる環境変数の有効化が間に合わなくなります。有効にするには再起動が必要です。これは、ソース コマンドが環境変数を時間内に作成するという期待と一致しません。