(转)Linux(Centos)之安装Java JDK及注意事项
場景:天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣。人之為學有難易乎?學之,則難者亦易矣;不學,則易者亦難矣。
1 準備工作
下面配置jdk的方式在具有root權限時候能夠執行。如果沒有root權限,建議使用當前用戶目錄配置的方式進行配置:
編輯文件
vi $HOME/.profile?
并在文件末尾添加
#export JRE_HOME=$ORACLE_HOME/jdk/jre export JAVA_HOME=/home/simu/jdk1.7.0_67/jre export PATH=$PATH:$JAVA_HOME/bin?
最后執行:
source $HOME/.profile1.1 檢查系統版本
建議:在安裝軟件時候用root用戶進行安裝。
因為Java JDK區分32位和64位系統,所以在安裝之前必須先要判斷以下我們的Centos系統為多少位系統,命令如下:
uname -a 解釋:如果有x86_64就是64位的,沒有就是32位的。后面是X686或X86_64則內核是64位的,i686或i386則內核是32位的 由此可以判斷我的centos為64位系統,故而我需要下載64位系統的JDK。 查詢本地jdk的安裝情況 rpm -qa|grep java?查詢結果如下:
java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64 java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64 tzdata-java-2015g-2.el6.noarch卸載查詢出來的jdk
卸載上面三個文件(--nodeps?的作用:忽略依賴的檢查):
sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64sudo rpm -e --nodeps java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64sudo rpm -e --nodeps tzdata-java-2015g-2.el6.noarch?也可以一起卸載:
sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64 java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64 tzdata-java-2015g-2.el6.noarch?
JDK 1.8 安裝
- 我們以安裝?jdk-8u72-linux-x64.tar.gz?為例
- 我個人習慣?/opt?目錄下創建一個目錄?setups?用來存放各種軟件安裝包;在?/usr?目錄下創建一個?program?用來存放各種解壓后的軟件包,下面的講解也都是基于此習慣
- 我個人已經使用了第三方源:EPEL、RepoForge,如果你出現?yum install XXXXX?安裝不成功的話,很有可能就是你沒有相關源,請查看我對源設置的文章
- 解壓安裝包:sudo tar -zxvf jdk-8u72-linux-x64.tar.gz
- 移到解壓包到我個人習慣的安裝目錄下:mv jdk1.8.0_72 /usr/program/
- 配置環境變量:
- 編輯配置文件:sudo vim /etc/profile
- 在該文件的最尾巴,添加下面內容:
- 執行命令,刷新該配置(必備操作):source /etc/profile
- 檢查是否使用了最新的 JDK:java -version
1.2下載JDK
這里我用的是1.7版本的JDK,并沒有選擇新版本1.8,因為我覺得這個版本的JDK比較穩定。 點擊http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,進入JDK下載頁面底部的Java Archive保存的是Java的歷史存檔,點擊進入
這里就找到要下載的1.7版本了,繼續點擊
下面兩個都是64位的JDK,兩個的區別在于安裝方式不同。參考http://www.cnblogs.com/lixuwu/p/6097102.html
這里我把兩個軟件都下載下來進行練習
1.3 JDK安裝環境
操作需要的軟件以及系統如下:虛擬機(Vmware),虛擬機中安裝的Centos系統,Xshell,FileZila,jdk-7u80-linux-x64.tar.gz
2 安裝JDK
通過上面準備工作之后,我們現在已經擁有了可以安裝JDK的環境。
2.1 創建用戶目錄
然后在Xshell中使用命令跳轉到用戶指定的文件夾下面(項目中通常每個項目都有自己單獨的JDK配置):project在使用非root用戶登錄時候,按照如下步驟操作:
#首先切換到root權限 su#創建目錄 mkdir projectllcd project/?
2.2 上傳JDK文件到指定目錄
然后使用FileZila將jdk復制到project文件夾下面,如圖所示:
下圖是解壓后的目錄列表,上傳的文件是已經標注。
2.3 解壓JDK
直接在用JDK文件所在目錄解壓縮文件
tar -zxv -f jdk-7u80-linux-x64.tar.gz查看JDK文件內容:
通過上面的步驟,我們的jdk已經全部完成安裝了,接下來就是更重要的一步:配置環境變量
?
對java?JDK的配置分為兩種情況,一種是ROOT用戶進行配置,一種是普通用戶進行配置。ROOT用戶配置完成后,即為Linux下各用戶(ROOT用戶和各非ROOT用戶)默認的JDK配置。而普通用戶配置完后只對當前用戶,也就是自己有效。
當然,根據就近原則,若ROOT用戶和當前用戶都對JDK進行了配置,Linux使用當前用戶配置的JDK信息。
2.4 配置root用戶環境變量
在root用戶下面,配置全局的環境變量
1、先執行
vim /etc/profile在JDK所在目錄下,查找JDK的根目錄
pwdJDK的絕對路徑在配置文件中會用到。
2、 打開之后按鍵盤(i)進入編輯模式,將下面的內容復制到底部
JAVA_HOME=/home/cs408/project/jdk1.7.0_80export JRE_HOME=$JAVA_HOME/jre PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH #add by lxw export JAVA_HOME=/usr/java/jdk1.7.0_67 export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
?
備注:根據上面的配置信息,我們已經將環境變量的配置完成。 需要注意的是,PATH在配置的哦時候,一定要把AVA_HOME/bin放在最前面,不然使用java命令式,系統會找到以前的JAVA,在不往下找了,這樣java這個可執行文件運行的目錄其實不在$JAVA_HOME/bin下,而在其它目錄下,會造成很大的問題。 4、寫完之后我們按鍵盤(ESC)按鈕退出,然后按(:wq)保存并且關閉Vim。 5、配置完成之后,最重要的一步就是使文件立即生效 source /etc/profile2.5 配置當前用戶環境變量?
首先使用cd命令,切換到當前用戶目錄,并查看用戶的環境變量配置文件,有的是.bash_profile,這里是.profile 文件:
然后執行?
vi .profile#將java變量信息粘貼到文件底部 export JAVA_HOME=/home/tws/server/jdk1.7.0_67 export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/binps:如果2在1上面環境變量不會生效。為穩妥起見,把java的環境變量放在最下面。
保存,然后執行生效命令
source .profile?
3 驗證是否成功
java -versionecho $JAVA_HOME4 卸載JDK
首先執行命令查看服務器下的jdk的版本: rpm -qa|grep jdk?
然后執行命令,將上面查詢出來的每個版本以此刪掉即可。
yum -y remove java java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_645 補充
5.1 問題
- linux服務器重啟后環境變量失效,需要重新執行
source /etc/profile
如何保證重啟后環境變量生效,還待驗證
- root用戶安裝完jdk后,非root用戶不能執行java -version 命令,執行如下命令即可
source /etc/profile
?
OpenJDK和JDK之間的區別聯系歷史上的原因是,OpenJDK是JDK的開放原始碼版本,以GPL(General Public License)協議的形式放出(題主提到的open就是指的開源)。在JDK7的時候,OpenJDK已經作為JDK7的主干開發,SUN JDK7是在OpenJDK7的基礎上發布的,其大部分原始碼都相同,只有少部分原始碼被替換掉。使用JRL(JavaResearch License,Java研究授權協議)發布。至于OpenJDK6則更是有其復雜的一面,首先是OpenJDK6是JDK7的一個分支,并且盡量去除Java SE7的新特性,使其盡量的符合Java6的標準。關于JDK和OpenJDK的區別,可以歸納為以下幾點:
授權協議的不同:OpenJDK采用GPL V2協議放出,而SUN JDK則采用JRL放出。兩者協議雖然都是開放源代碼的,但是在使用上的不同在于GPL V2允許在商業上使用,而JRL只允許個人研究使用。
OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,這些功能在OpenJDK中是找不到的。
?
OpenJDK源代碼不完整:這個很容易想到,在采用GPL協議的OpenJDK中,SUN JDK的一部分源代碼因為產權的問題無法開放給OpenJDK使用,其中最主要的部份就是JMX中的可選元件SNMP部份的代碼。因此這些不能開放的源代碼 將它作成plug,以供OpenJDK編譯時使用,你也可以選擇不要使用plug。而Icedtea則為這些不完整的部分開發了相同功能的源代碼 (OpenJDK6),促使OpenJDK更加完整。
?
部分源代碼用開源代碼替換:由于產權的問題,很多產權不是SUN的源代碼被替換成一些功能相同的開源代碼,比如說字體柵格化引擎,使用Free Type代替。
OpenIDK只包含最精簡的JDK:OpenJDK不包含其他的軟件包,比如Rhino Java DB JAXP……,并且可以分離的軟件包也都是盡量的分離,但是這大多數都是自由軟件,你可以自己下載加入。
不能使用Java商標:這個很容易理解,在安裝OpenJDK的機器上,輸入“java -version”顯示的是OpenJDK,但是如果是使用Icedtea補丁的OpenJDK,顯示的是java。
總之,在Java體系中,還是有很多不自由的成分,源代碼的開發不夠徹底,希望Oracle能夠讓JCP更自由開放一些,這也是所有Java社區所希望的。
轉載于:https://www.cnblogs.com/lixuwu/p/6096794.html
總結
以上是生活随笔為你收集整理的(转)Linux(Centos)之安装Java JDK及注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker: Failed to ge
- 下一篇: 常用在线编辑