目錄
- 1 簡介
- 2 準(zhǔn)備工作
- 3 卸載原有 OpenJDK 組件
- 3.2 查看默認(rèn)安裝版本
- 3.3 卸載默認(rèn)安裝版本
- 4 安裝 OracleJDK rpm 包
- 5 驗(yàn)證
1 簡介
JDK(Java Development Kit)是 Java 平臺編程中使用的軟件開發(fā)環(huán)境。它包含一個(gè)完整的 Java 運(yùn)行時(shí)環(huán)境,即所謂的私有運(yùn)行時(shí)。該名稱來自于它包含的工具多于獨(dú)立的 JRE 以及開發(fā) Java 應(yīng)用程序所需的其他組件。常見的有 OpenJDK 和 Oracle JDK
OracleJDK 根據(jù) Oracle 二進(jìn)制代碼許可協(xié)議獲得許可,而 OpenJDK 具有 GNU 通用公共許可證(GNU GPL)版本2。
使用 Oracle 平臺時(shí)會(huì)產(chǎn)生一些許可影響。如 Oracle 宣布的那樣,在沒有商業(yè)許可的情況下,在2019年1月之后發(fā)布的 Oracle Java SE 8 的公開更新將無法用于商業(yè),商業(yè)或生產(chǎn)用途。但是,OpenJDK 是完全開源的,可以自由使用。
因此,大多數(shù) Linux 發(fā)行版軟件源中采用 OpenJDK,而國內(nèi)開發(fā)者在開發(fā) Java 項(xiàng)目時(shí),多數(shù)采用了OracleJDK,通常情況下兩者并沒有太大差異,但在少數(shù)時(shí)候程序運(yùn)行時(shí)可能遇到異常。
麒麟V10 操作系統(tǒng)默認(rèn)安裝了 OpenJDK 1.8 版本,本文主要介紹在OracleJDK 環(huán)境下開發(fā)的程序在麒麟V10上運(yùn)行遇到錯(cuò)誤時(shí),可以嘗試更換OpenJDK 為 Oracle JDK(已遇到一個(gè)實(shí)例:通過東方通中間件部署的某個(gè) Java 應(yīng)用在 OpenJDK 環(huán)境下運(yùn)行異常,更換為 Oracle JDK 后能夠正常運(yùn)行。)
當(dāng)然,因?yàn)樯虡I(yè)許可等原因,這種臨時(shí)替換不建議用于生產(chǎn)環(huán)境,而是通過比較應(yīng)用在兩者上的運(yùn)行異同,最終適配到默認(rèn)的 OpenJDK 上來。
2 準(zhǔn)備工作
下載 OracleJDK 1.8
官方下載頁面:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
選擇 aarch64 版本的 rpm 包下載(也可以選擇壓縮包格式,但需要自己配置環(huán)境變量等)
jdk-8u281-linux-aarch64.rpm
驗(yàn)證環(huán)境:
使用cat /etc/kylin-release
和uname -a
查看操作系統(tǒng)信息
- 操作系統(tǒng):Kylin Linux Advanced Server release V10 (Tercel)
- 內(nèi)核信息:4.19.90-17.5.ky10.aarch64
3 卸載原有 OpenJDK 組件
注意,麒麟V10 操作系統(tǒng)默認(rèn)同時(shí)安裝了 OpenJDK 和 OpenJDK 11 兩個(gè)版本,均進(jìn)行卸載
3.2 查看默認(rèn)安裝版本
yum list installed |grep jdk
java -version
3.3 卸載默認(rèn)安裝版本
yum remove java-1.8.0-openjdk.aarch64
yum remove java-1.8.0-openjdk-headless.aarch64
yum remove java-11-openjdk-1:11.0.6.10-4.ky10.ky10.aarch64
yum remove java-11-openjdk-headless-1:11.0.6.10-4.ky10.ky10.aarch64
4 安裝 OracleJDK rpm 包
rpm -i jdk-8u281-linux-aarch64.rpm
5 驗(yàn)證
可以看到,OracleJDK 已經(jīng)安裝成功(原有的 openjdk 標(biāo)識消失)
到此這篇關(guān)于麒麟V10更換OpenJDK為Oracle JDK的方法的文章就介紹到這了,更多相關(guān)更換OpenJDK為Oracle JDK內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- c# HashSet的擴(kuò)容機(jī)制需要注意的
- HashTable、HashSet和Dictionary的區(qū)別點(diǎn)總結(jié)
- C++中檢查vector是否包含給定元素的幾種方式詳解
- c++容器list、vector、map、set區(qū)別與用法詳解
- SpringBoot修改子模塊Module的jdk版本的方法 附修改原因
- JDK源碼之Vector與HashSet解析