2012-02-05 105 views
3

我創建了一個文件/etc/profile.d/java.sh,其中包括(其中包括)代碼行:export JAVA_HOME=/usr/java/jdk1.6.0_30。然而,當我通過SSH登錄或重新啓動的Linux的Centos 6.2服務器,我總是看到:JAVA_HOME的默認值似乎覆蓋了由/etc/profile.d/java.sh設置的值。

[[email protected] /etc/profile.d]# echo $JAVA_HOME 
/usr/local/jdk 

這是一個新安裝的服務器,所以沒有太多別的做。看起來,java.sh文件在重新啓動或SSH登錄時執行,但是,JAVA_HOME的值以某種方式被默認值/usr/local/jdk覆蓋。 /usr/local甚至沒有目錄jdk

任何想法如何解決這個問題?需要爲所有用戶設置JAVA_HOME的值(在java.sh中完成)。

更新1:

我查了/ etc/profile文件和搜索的文本jdk以及JAVA也不被發現。我還檢查了/root/.bash_profile,它顯示如下:

# .bash_profile 

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

# User specific environment and startup programs 

PATH=$PATH:$HOME/bin 

export PATH 

另外,如果我的源java.sh,一切都得到正確設置。但是如果我重新啓動服務器,JAVA_HOME會返回到/usr/local/jdk

+0

您是否找到解決方案?由於存在任何地方的任何問題,我真的很困難。 – Sina 2014-08-06 02:44:26

+0

剛剛找到罪魁禍首。請參閱下面的答案 – Sina 2014-08-06 02:57:08

回答

2

檢查/ etc/profile文件或主目錄中的.bash_profile/.profile文件。

+0

請參閱上面的更新1。 – ggkmath 2012-02-05 19:14:40

+0

如果您只想設置正確的JAVA_HOME,請將該命令添加到.bash_profile。如果你想進一步挖掘,首先找出你的shell是什麼。假設它是bash,檢查/ etc/profile的內容並從那裏獲取它。在我的/ etc/profile中,它會爲/etc/profile.d/*.sh下的每個文件提供資源;所以看看/etc/profile.d下的* .sh文件。同時檢查/ etc/bashrc和你的本地.bashrc – bubbly 2012-02-05 19:34:59

2

看來,cPanel將以下行添加到/etc/bashrc文件以將JAVA_HOME設置爲默認值。

export JAVA_HOME=/usr/local/jdk 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/classes.zip 

所以,如果你有安裝的cPanel,請務必檢查該文件中。

+0

從早上開始我的腦袋開始破碎。 cPanel讓我感到困擾,直到我看到你的帖子。謝謝@Sina – Samy 2014-09-29 10:32:58