今天講下使用CentOS中遇到的一些坑膘婶,之前在項(xiàng)目中一直使用的都是IBM的AIX或者是Redhat的Linux阵谚,因?yàn)槲宜艿南到y(tǒng)要整體遷到CentOS上為后續(xù)部署docker做準(zhǔn)備慕蔚,所以最近幾天一直在和CentOS打交道梧乘,之前覺得都是linux內(nèi)核的系統(tǒng)應(yīng)該沒有問題趟济,但是在實(shí)際使用過程中戴差,還是有一些小坑的送爸。
這次說下如何替換CentOS中默認(rèn)的JDK,之前在AIX下只需要設(shè)置/etc/profile中的JAVA_HOME暖释、PATH袭厂、CLASSPATH這些環(huán)境變量就可以了,下次進(jìn)入終端就會(huì)生效球匕,但是在CentOS下試了半天始終沒有生效纹磺。每次設(shè)置完了之后在命令行輸入java -version都還是顯示系統(tǒng)默認(rèn)的JDK,網(wǎng)上查了很多帖子說的也都是只言片語不夠詳細(xì)亮曹。后來看了幾篇帖子橄杨,自己也根據(jù)以往的經(jīng)驗(yàn)琢磨了下,終于解決照卦,整理了以下的一些步驟式矫。
檢查原系統(tǒng)中JDK版本
[root@localhost open-gateway]# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
通過which java命令可以查看當(dāng)前使用的JDK的安裝目錄,CentOS自帶的JDK是安裝在/usr/lib/jvm/下
[root@localhost open-gateway]# which java
/usr/lib/jvm/jdk-8u65-linux-x64/jdk1.8.0_65/bin/java
安裝需要的JDK
從官網(wǎng)下載需要的JDK版本役耕,我們下載了JDK1.8.0_144這個(gè)版本采转,準(zhǔn)備在CentOS上安裝這個(gè)版本的JDK。
官網(wǎng)地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
解壓下載下來的壓縮包
[root@localhost Downloads]# gzip -d jdk-8u144-linux-x64.tar.gz
[root@localhost Downloads]# tar -xvf jdk-8u144-linux-x64.tar
修改環(huán)境變量
通過vi修改etc目錄下的profile文件里的環(huán)境變量瞬痘,如果系統(tǒng)中已經(jīng)有了profile可以直接打開按i鍵進(jìn)入編輯模式進(jìn)行編輯氏义,如果沒有的話會(huì)自動(dòng)新建profile文件,etc目錄下的profile文件可以理解成系統(tǒng)啟動(dòng)時(shí)候會(huì)自動(dòng)設(shè)置的環(huán)境變量图云,不用每次打開都去設(shè)置session的環(huán)境變量惯悠,如果只是在會(huì)話窗口設(shè)置JAVE_HOME、PATH這些環(huán)境變量竣况,那么一旦會(huì)話窗口關(guān)閉克婶,那么這些環(huán)境變量將失效。
[root@localhost open-gateway]# vi /etc/profile
在profile文件的最前面加上需要export的環(huán)境變量丹泉,這里需要設(shè)置以下幾條情萤,JAVA_HOME、JRE_HOME摹恨、CLASSPATH筋岛、PATH,還需要非常注意的一點(diǎn)是晒哄,一定要把需要設(shè)置的jdk路徑放在最前面睁宰,因?yàn)橄到y(tǒng)找環(huán)境變量的順序是肪获,找到這個(gè)環(huán)境變量后不會(huì)再繼續(xù)往后找,所以柒傻,如果是加在末尾則會(huì)一直使用舊的javahome孝赫,還有個(gè)需要注意的地方,CentOS中的環(huán)境變量是通過冒號(hào):進(jìn)行分割的红符,其他linux系統(tǒng)中大部分都是通過分號(hào)青柄;進(jìn)行分隔的,開始就是自己想當(dāng)然按照分號(hào)分隔预侯,怎么都不生效致开。。萎馅。希望大家不要再犯我犯的錯(cuò)誤喇喉。
# /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk-8u144-linux-x64/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar$CLASS_PATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
設(shè)置完成后我們需要使用source命令刷新當(dāng)前會(huì)話的環(huán)境變量。
source /etc/profile
這時(shí)我們查看環(huán)境變量發(fā)現(xiàn)校坑,環(huán)境變量都生效了拣技,但是當(dāng)我們java -version的時(shí)候發(fā)現(xiàn)版本還是老版本,當(dāng)時(shí)我的畫面是黑人問號(hào)耍目,接下來又想了想可能是系統(tǒng)自帶的openjdk注冊(cè)了系統(tǒng)服務(wù)膏斤,導(dǎo)致只改環(huán)境變量還不行,所以下了一個(gè)殺招邪驮,卸載系統(tǒng)自帶JDK莫辨。
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
再重新source下profile發(fā)現(xiàn),這時(shí)java -version就是自己下載的版本了毅访。
[root@localhost open-gateway]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)