簡體   English   中英

登錄時 ~/bash_profile 中的 $JAVA_HOME 路徑來源不正確

[英]$JAVA_HOME path not sourced correctly in ~/bash_profile at login

登錄我的 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 是這樣寫的:

#  .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

每次我打開一個新終端時,Sourcing.bash_profile 似乎都可以解決問題,但為什么我的 $JAVA_HOME 路徑在啟動時默認為舊版本並且沒有設置為在 .bash_profile 中指定的目錄?

  1. 在交互式shell中運行ps以確保您處於bash
  2. 登錄后嘗試使用bash -l ,看看它是否可以解決您的問題。
  3. JAVA_HOME=...之前添加set -x以檢查是否有問題。

每次打開新終端時都要采購.bash_profile似乎可以解決此問題,但是為什么我的$ JAVA_HOME路徑在啟動時默認為舊版本,而不設置為.bash_profile中指定的目錄?

您需要從當前用戶注銷並再次登錄,以便進行環境變量更改。

可能有用

在Bash中:

  • Bash作為登錄shell將按順序加載/etc/profile~/.bash_profile~/.bash_login~/.profile
  • Bash作為非登錄交互shell將加載~/.bashrc

環境 :

  • 使用/etc/environment可以在整個系統范圍內(所有用戶,所有進程)永久設置所有用戶的環境變量。

    /etc/environment是系統范圍的配置文件,表示所有用戶都使用它。 它是由root擁有的,因此您需要成為admin用戶並使用sudo對其進行修改。

    假設如果設置了foo="bar"變量,那么可以從所有用戶會話訪問foo 首先測試變量輸出

    source /etc/environment

  • ~/.profile是您自己用戶的個人shell初始化腳本之一。 每個用戶都有一個文件,可以編輯其文件而不會影響其他文件。

  • /etc/profile/etc/profile.d/*.sh是全局初始化腳本,等效於每個用戶~/.profile 但是,全局腳本在用戶特定腳本之前執行; 並且主/etc/profile在退出之前執行/etc/profile.d/所有*.sh腳本。

另請注意,

  • /etc/environment文件為每個登錄用戶設置系統范圍的變量。
  • 如果bash shell由任何用戶打開,則執行bash_profile中的命令。 因此,除非至少打開一次bash shell,否則將不會設置變量。

它對我有用!

就我而言,以下原因導致了錯誤:

export JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

錯誤是=前后有空格 刪除這些空格后錯誤消失。

所以正確的命令如下:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM