2017-10-11 109 views
1

登錄到我的CentOS 7虛擬機後,我的$ 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 

採購,每次的.bash_profile我打開一個新的終端出現糾正問題,但爲什麼我的$ JAVA_HOME路徑默認爲舊版本在啓動時不被設置爲.bash_profile中指定的目錄?

+0

你是怎麼登錄vm的? SSH? – pynexj

+0

我在VMWare Workstation 12中使用安裝在我的筆記本電腦上的VM映像在本地登錄。 – SD7Codr

+0

似乎您的'.bash_profile'登錄時不是源代碼。檢查你的登錄shell。 – codeforester

回答

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

採購我每次打開新的終端時的.bash_profile似乎 糾正問題,但爲什麼我的$ JAVA_HOME路徑默認爲舊版本 在啓動時不被設定成 指定的目錄.bash_profile中?

您需要從當前用戶註銷並再次登錄,以便環境變量發生變化。

可能有用

在擊:

  • bash作爲登錄shell將在順序加載/etc/profile~/.bash_profile~/.bash_login~/.profile
  • bash作爲非登錄交互式shell將加載~/.bashrc

環境:

  • 使用/etc/environment永久全系統(所有用戶,所有的進程)設置環境變量爲所有用戶。

    /etc/environment是一個系統範圍的配置文件,這意味着它被所有用戶使用。它由root擁有,所以你需要成爲一個管理員用戶並使用sudo來修改它。

    假設您設置了foo="bar"變量foo將可以從所有用戶會話訪問。爲了測試可變輸出第一來源它

    source /etc/environment

  • ~/.profile是你自己的用戶個人的外殼初始化腳本之一。每個用戶都有一個,並且可以編輯他們的文件而不影響他人

  • /etc/profile/etc/profile.d/*.sh是全局初始化腳本,相當於每個用戶的~/.profile。全局腳本在用戶特定的腳本之前被執行;主要/etc/profile在退出之前執行/etc/profile.d/中的所有*.sh腳本。

還要注意,

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