bashがsource ~/.bash_profileを実行せずにJavaパスを更新しないのはなぜですか?

bashがsource ~/.bash_profileを実行せずにJavaパスを更新しないのはなぜですか?

私はMacを使用しており、$JAVA_HOME環境パスは~/.bash_profile次のように設定されています。

export JAVA_HOME=$(/usr/libexec/java_home)

Java を更新した後、bash以前のバージョンで Java を探し続けます。

新しい端末を開くたびに、source ~/.bash_profile新しいJavaパスに対してTell bashを実行する必要があります。私の設定を無視する設定はありますか.bash_profile

ベストアンサー1

変更は~/.bash_profile新しいシェルセッション(新しいターミナルウィンドウ)でのみ表示されます。新しいシェルセッションは更新された設定ファイルを解析し、新しい$JAVA_HOME値を持ちます。

これは、端末がログインシェルで新しいシェルを起動すると仮定します。そうでない場合は、変更を適用する必要があります~/.bashrc。他のシェルを使用しない場合、bashファイル名は使用するシェルによって異なります。

既存のセッションの値を変更するには、$JAVA_HOMEコマンドラインで値を明示的に設定する必要があります。あるいは、見つかったとおりにシェル初期化ファイルを入手する必要があります(他のコマンドの内容によっては、他の副作用がある場合とない場合があります)。ファイルで実行されます)。

おすすめ記事