日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

linux安装java_linux中替换系统自带的OpenJDK

發(fā)布時間:2025/3/19 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux安装java_linux中替换系统自带的OpenJDK 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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)境變量
sudo gedit ~/.bashrc //如果你裝了zsh,執(zhí)行下面這個,上面的不用執(zhí)行 sudo gedit ~/.zshrc

文件的末尾追加下面內(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)境變量馬上生效
source ~/.bashrc //或者 source ~/.zshrc

然后驗證:

可以

發(fā)生錯誤

感謝:https://zhuanlan.zhihu.com/p/27892768

  • 若不成功(設(shè)置系統(tǒng)默認(rèn)JDK):
sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.8.0_60/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.8.0_60/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jdk/jdk1.8.0_60/bin/jar 300 sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jdk/jdk1.8.0_60/bin/javah 300 sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jdk/jdk1.8.0_60/bin/javap 300 //執(zhí)行對應(yīng)的

然后執(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 170130

2. 選擇自己安裝的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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。