linux安装java_linux中替换系统自带的OpenJDK
OpenJDK和SUN JDK的區(qū)別:
- 授權(quán)協(xié)議的不同:OpenJDK采用GPL V2協(xié)議放出,而SUN JDK則采用JRL放出。兩者協(xié)議雖然都是開放源代碼的,但是在使用上的不同在于GPL V2允許在商業(yè)上使用,而JRL只允許個人研究使用。
- OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,這些功能在OpenJDK中是找不到的。
- 下載jdk:
鏈接: https://pan.baidu.com/s/11glwWBHSf_Hd6LRhyfIMXw 密碼: 9tcr
然后進入下載目錄:
sudo mkdir /usr/lib/jdk sudo tar -zxvf jdk-8u60-linux-x64.tar.gz -C /usr/lib/jdk //-C代表change目錄的意思,本例中指定解壓文件到/usr/lib/jdk這個目錄下- 配置環(huán)境變量
文件的末尾追加下面內(nèi)容:
#set oracle jdk environment export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_60 ## 這里要注意目錄要換成自己解壓的jdk 目錄 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH- 使環(huán)境變量馬上生效
然后驗證:
可以發(fā)生錯誤感謝:https://zhuanlan.zhihu.com/p/27892768
- 若不成功(設(shè)置系統(tǒng)默認(rèn)JDK):
然后執(zhí)行:
sudo update-alternatives --config java測試:
java -version javac -version解釋:
javac命令用與編譯java源碼文件,其語法格式如下: javac [ options ] [ sourcefiles ] [ @files ] 參數(shù)可按任意次序排列 options 命令行選項 sourcefiles 一個或多個要編譯的源文件(例如 MyClass.java) @files 一個或多個對源文件進行列表的文件linux增加環(huán)境變量的方法:
方法一:
在/etc/profile文件中添加變量【對所有用戶生效(永久的)】用vim在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,并且是“永久的”。要讓剛才的修改馬上生效,需要執(zhí)行以下代碼# source /etc/profile方法二:
在用戶目錄下的.bash_profile文件中增加變量【對單一用戶生效(永久的)】用vim在用戶目錄下的 .bash_profile文件中增加變量,改變量僅會對當(dāng)前用戶有效,并且是“永久的”。要讓剛才的修改馬上生效,需要在用戶目錄下執(zhí)行以下代碼# source .bash_profile下面對上面一些現(xiàn)象作出的解釋,記錄下的的原因是涉及到linux的一些操作,當(dāng)作熟悉linux了
感謝:https://blog.csdn.net/rj042/article/details/72034650
在linux系統(tǒng)中,由于涉及到版權(quán)問題,在大部分linux系統(tǒng)的發(fā)行版本中,默認(rèn)都安裝了OpenJDK,并且OpenJDK的java命令也已經(jīng)加入到環(huán)境變量中了。
在剛裝好的linux系統(tǒng)中,運行java -version,輸出如下(JDK版本不同,輸出的版本可能不同):
但在進行java開發(fā)時,我們大多是需要使用Sun(準(zhǔn)確的說應(yīng)該是Oracle)的JDK,所以我們會去Oracle官網(wǎng)下載相應(yīng)版本的JDK進行安裝。
如何在linux上安裝,在此不在贅述。
在linux上安裝完JDK后,我們會在~/.bash_profile 把安裝的java加入到環(huán)境變量中。原以為就萬事大吉了,在運行java程序時會使用自己安裝的JDK。
如果你是這么想的就大錯特錯了,在文章開頭講的,由于linux系統(tǒng)的發(fā)行版中默認(rèn)安裝的時OpenJDK,盡管我們把安裝的SunJDK的java命令也加入到環(huán)境變量中,但是我們運行
java -version,輸出確還是和之前一樣。
這要這么破!!!查找原因,不急,先運行
whereis java輸出如下(這是我自己電腦的輸出,和文字不一樣,可以忽略圖):
從圖中在幾個地方都有 java 命令,其中/opt/java/bin/java 是我自己安裝的SunJDK的java命令所在的目錄,而/usr/bin/java是系統(tǒng)中默認(rèn)安裝的java命令所在的目錄。
原因就在這,執(zhí)行
ls -la /usr/bin/java輸出如下(這是我自己電腦的輸出,和文字不一樣,可以忽略圖):
這是一個軟連接cd /etc/alternatives到目錄下看個究竟:
然后輸入(這是我自己電腦的輸出,和文字不一樣,可以忽略圖):
ls -la輸出比較多,而且很多軟鏈,其中有一個
java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
到此,應(yīng)該明白了,java命令其實指向的是OpenJDK中的java命令,所以才會出現(xiàn)我們把自己安裝的SunJDK的java命令配置到環(huán)境變量中后,依然不起作用。
所以我們要做的就是需要把java的軟鏈指向我們自己安裝的SunJDK的java命令,即/opt/java/bin/java
使用安裝的JDK替代系統(tǒng)默認(rèn)的OpenJDK
linux中提供了update-alternatives命令,update-alternatives是linux系統(tǒng)(大部分linux系統(tǒng)都支持此命令)中專門維護系統(tǒng)命令鏈接符的工具,通過它可以很方便的設(shè)置系統(tǒng)默認(rèn)使用哪個命令、哪個軟件版本,而所有的這些就構(gòu)成了備選方案系統(tǒng)(alternatives system)。
很多時候我們會將擁有相同或相似功能的不同應(yīng)用程序安裝在同一個操作系統(tǒng)上,例如同一個操作系統(tǒng)上的不同文本編輯器。這給了這個系統(tǒng)的用戶在編輯文本時有了更多的選擇,如果用戶愿意他們可以自由選擇任意一個來使用。
其實update-alternatives命令的功能很好理解,舉個例子:在Window系統(tǒng)中,如果我們安裝多個瀏覽器,比如有火狐、有IE、有360、有Chrome等,當(dāng)我們從某個鏈接進去打開網(wǎng)頁時,可能會問你使用哪個瀏覽器,當(dāng)你選擇某個瀏覽器時,此瀏覽器會問你是否把它作為默認(rèn)瀏覽器,如果你選擇了是,那下次點開某個鏈接時,就直接使用默認(rèn)瀏覽器打開了!
現(xiàn)在我們在系統(tǒng)中同時安裝了open jdk和sun jdk兩個版本,(由于linux發(fā)行版本中默認(rèn)使用OpenJDK的java命令 )而我們又希望系統(tǒng)默認(rèn)使用的是sun jdk的java命令,那怎么辦呢?通過update-alternatives就可以很方便的實現(xiàn)了。
首先運行以下命令查看java當(dāng)前的默認(rèn)配置
update-alternatives --display java輸出如下(后面有省略):
java - status is manual.link currently points to /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java - priority 170131slave keytool: /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/keytoolslave orbd: /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/orbd ......可以從輸出中看到系統(tǒng)中java默認(rèn)使用的OpenJDK,其中數(shù)字170131表示優(yōu)先級。
下面進入正式配置階段
1. 把自己安裝的SunJDK加入到備選系統(tǒng)中
運行命令(注意命令最后的數(shù)字表示優(yōu)先級,其中170130為SunJDK的alternative的優(yōu)先級)
update-alternatives --install /usr/bin/java java /opt/java/bin/java 1701302. 選擇自己安裝的SunJDK作為首選java命令
運行命令
update-alternatives --config java輸出如下
There are 2 programs which provide 'java'.Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java2 /opt/java/bin/java Enter to keep the current selection[+], or type selection number:config命令是交互式的命令,可以根據(jù)提示進行選擇,此處我們選擇2,即使用安裝的SunJDK的java命令,然后按回車鍵!
至此,配置完成了!
說明:在配置步驟1中,我們指定SunJDK的優(yōu)先級是170130(比當(dāng)前優(yōu)先級170131低),所以需要進行步驟二進行手動選擇;如果我們指定的優(yōu)先級比當(dāng)前優(yōu)先級170131高,則步驟二可以省略,系統(tǒng)自動會選擇優(yōu)先級高的作為默認(rèn)alternative!
總結(jié)
以上是生活随笔為你收集整理的linux安装java_linux中替换系统自带的OpenJDK的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java面试换背景颜色_证件照换底色 证
- 下一篇: linux安装mysql8.0_Linu