2017-10-11 15 views
1

CentOS 7 VMにログインすると、$ JAVA_HOMEは常に /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jreに設定されますが、これは間違っています。ログイン時に〜/ bash_profileにJAVA_HOMEパスが正しく供給されない

私の〜/ .bash_profileを読み取り:

# .bash_profile 

# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
    . ~/.bashrc 
fi 

# User specific environment and startup programs 
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre 
export JAVA_HOME 

PYCHARM_HOME=/opt/pycharm-community-2017.2.3/ 
export PYCHARM_HOME 

ECLIPSE_HOME=/opt/eclipse 
export ECLIPSE_HOME 

export SPARK_HOME=/opt/spark 

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin:$PYCHARM_HOME/bin:$ECLIPSE_HOME 

export PATH 

ソーシング私は開く.bash_profileをするたびに、新しい端末が問題を修正するように見えるが、なぜ私の$ JAVA_HOMEパスが起動時に古いバージョンをデフォルトとされていません.bash_profileに指定されたディレクトリに設定されていますか?

+0

どのようにVMにログインしましたか? ssh? – pynexj

+0

VMWare Workstation 12のラップトップにインストールされたVMイメージを使用してローカルにログインしています。 – SD7Codr

+0

ログイン時に '.bash_profile'がソースになっていないようです。ログインシェルを確認してください。 – codeforester

答えて

0
  1. あなたはbashにいることを確認するために、対話型シェルで実行ps
  2. ログイン後にbash -lを試して、問題が解決したかどうかを確認してください。
  3. set -xJAVA_HOME=...の前に追加して問題がないかどうかを確認してください。 は、問題を修正するために、私は新しいターミナルを開くたび.bash_profileの
0

ソーシングが表示されますが、ある理由私の$ JAVA_HOMEパスは、起動時に古い バージョンをデフォルトと で指定したディレクトリに設定されていません.bash_profile?

環境変数が変更されるように、現在のユーザーからログアウトして再度ログインする必要があります。

はbashで

有用である可能性がある:ログインシェルとして

  • バッシュは順番に/etc/profile~/.bash_profile~/.bash_login~/.profileをロードします。

    • 使用/etc/environmentに恒久的にシステム全体(すべてのユーザー、すべてのプロセス)、すべてのユーザーのための環境変数を設定します。非ログイン対話型シェルとして

    • バッシュは~/.bashrc

    環境をロードします。

    /etc/environmentは、システム全体の構成ファイルです。つまり、すべてのユーザーが使用します。それはrootでも所有されているので、あなたは管理者のユーザーでsudoを使ってそれを変更する必要があります。

    foo="bar"変数を設定すると、すべてのユーザーセッションから変数fooにアクセスできるとします。可変出力をテストするための最初のソースそれ

    source /etc/environment

  • ~/.profileは、独自のユーザーの個人的なシェル初期化スクリプトの1つです。すべてのユーザーは1つのユーザーしか持たず、他のユーザーに影響を与えずにファイルを編集できます。

  • /etc/profileおよび/etc/profile.d/*.shは、各ユーザーの~/.profileに相当するグローバル初期化スクリプトです。グローバルスクリプトは、ユーザー固有のスクリプトの前に実行されます。メインの/etc/profileは、のすべてのスクリプトを終了する直前に/etc/profile.d/に実行します。また

注意し、

  • /etc/environmentファイルには、ログイン時にユーザーごとに広い可変のシステムを設定します。
  • bash_profileのコマンドは、任意のユーザーがbashシェルを開いた場合に実行されます。したがって、少なくとも1回はbashシェルを開いていない限り、変数は設定されません。
関連する問題