碼農博客 即將到期,現將博客中部分文章轉載到博客園。本文發表與2012年,轉載時略有刪減安裝JDK其實只要搞定兩個問題,安裝目錄以及配置文件。如果你只想要快速安裝JDK,請略過此部分直接看安裝篇。
分析篇目錄分析網上的安裝JDK資料中安裝目錄基本有兩種——/opt和/usr/local。這兩個目錄安裝在哪里其實都無所謂,只不過在以前的linux中人們習慣將軟件安裝在/usr/local中。這里推薦/opt目錄。配置文件分析網上好多人提到了/etc/environment,/etc/PRofile,/etc/bash.bashrc,~/.bashrc 這四個配置。那JDK環境變量到底應該配在哪里呢?
各配置文件意義各配置的生效時間
- /etc/environment:設置整個系統的環境,與登錄用戶無關
- /etc/profile:系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行并從/etc/profile.d目錄的配置文件中搜集shell的設置
- /etc/bash.bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
- ~/.bashrc: 該文件包含專用于該登錄用戶bash shell的bash信息,當登錄時以及每次打開新的shell時該該文件被讀取
- /etc/environment:重啟生效
- /etc/profile:注銷后登錄生效
- /etc/bash.bashrc:重新打開bash shell后生效
- ~/.bahsrc:重新打開bash shell后生效
對于安裝JDK來說,JDK的環境變量肯定是與用戶有關的,所以/etc/environment就不太適合,而用戶可能不只一個,所以 ~/.bahsrc也不適合。我首先想到的就是將JDK環境變量配置在/etc/profile中??墒沁@樣遇到了點小問題。 配置好后注銷系統后登錄,對于普通用戶java環境變量生效了,但sudo su獲得root權限后java環境變量就不可用了。如下圖:
查閱資料,可以su – root這樣切換到root用戶后才會生效。如下圖:
如果你此時使用root用戶登錄,運行java -version看的話其實JDK環境變量是生效的。我懷疑sudo su雖然獲得了root權限,但是root用戶是沒有登錄的,所以root用戶就沒有執行/etc/profile。還有man su,“-”的意思是“使得shell為可登錄的shell”。另外如果將JDK環境變量配置在/etc/bash.bashrc中,如果java程序不是在shell中啟動的,比如eclipse,這樣就讀不到JDK環境變量,導致無法運行。經過上面的分析給出解決方案:將JDK同時配置在/etc/profile和/etc/bash.bashrc中
安裝篇一、下載JDK安裝文件32位系統請下載 jdk-6u37-linux-i586.bin64位系統請下載 jdk-6u37-linux-x64.bin我這里使用64位版本
二、拷貝JDK文件到/opt目錄# mv jdk-6u37-linux-x64.bin /opt
三,授權,并執行 chmod +x jdk-6u37-linux-x64.bin ./jdk-6u37-linux-x64.bin
四,設置環境變量 vim /etc/profile vim /etc/bash.bashrc
在兩個文件的末尾都加上下面一段
#set java environmentexport JAVA_HOME=/opt/jdk1.6.0_37export JRE_HOME=/opt/jdk1.6.0_37/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
五,重新打開終端,搞定java –version
新聞熱點
疑難解答
圖片精選