標籤:
最近因為重裝了系統,所以需要重新設定java環境變數,本來打算在/etc/environment中配置的,但是配置好以後重啟發現登入不進圖形介面了,ctrl+alt+F2~6都可以進入命令列,但是在命令列中嘗試用sudo su切換到root使用者又會失敗,查了一些資料後發現是因為environment中不要用export來配環境變數,這樣會導致登入失敗的問題,而且因為配java路徑的時候我們在原來的PATH前面添加了一些路徑,導致後面的/bin和/usr/bin等目錄都找不到了,因此也就無法找到sudo命令。
解決辦法如下:
ctrl+alt+F2~6進入命令列,然後用普通使用者登入,使用絕對路徑去調用sudo命令,如:
/usr/bin/sudo /usr/bin/vi /etc/environment
開啟之後把之前添加的環境變數配置都刪了,還原為系統原來的樣子。然後在/etc/profile的末尾添加環境變數的配置:
export JAVA_HOME=/home/joey/softwares/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
這樣就配置好java了。另外,這裡也備忘一下linux各個設定檔被調用的情況:
(1)/etc/enviroment 是系統的環境變數。
(2)/etc/profile: 是所有使用者的環境變數。當使用者第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的設定檔中搜集shell的設定。
(3)/etc/bashrc: 為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。
(4)~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。
(5)~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取。
(6) ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案. 另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等中設定的變數(局部)只能繼承 /etc/profile中的變數,他們是”父子”關係。
(7)~/.bash_profile 是互動式、login 方式進入 bash 啟動並執行~/.bashrc 是互動式 non-login 方式進入 bash 啟動並執行通常二者設定大致相同,所以通常前者會調用後者。
在ubuntu中配置java環境變數遇到的一些問題