Ubuntu 20.04 安裝 Oracle Javase-JDK

  • 系統環境
Env Disc
Hardware Laptop Thinkpad T440p
OS Ubuntu 20.04

  • 目的:我們要達成的目標
    安裝 Oracle Javase-JDK
  • 內容: 我們要做什麼
    • 從Oracle 官網下載 javase-jdk 目標版本
    • 安裝 JDK
    • 查看安裝的JDK版本
    • 在多個Java versions間切換(包括OpenJDK與OracleJDK之間)

說明:本文介紹的是Oracle 版本的Java JDK的安裝,關於Open JDK的安裝可參考另外篇博文 Ubuntu 20.04 安裝 Java OpenJDK


下載

從 Oracle 官網下載 javase-jdkXX
https://www.oracle.com/java/technologies/javase-downloads.html

當前下載的是最新版本:jdk-14.0.1_linux-x64_bin.deb (2020/05/10)

安裝

sudo dpkg -i Downloads/jdk-14.0.1_linux-x64_bin.deb

calm@u20:~$ sudo dpkg -i Downloads/jdk-14.0.1_linux-x64_bin.deb 
[sudo] password for calm: 
Selecting previously unselected package jdk-14.0.1.
	(Reading database ... 194199 files and directories currently installed.)
Preparing to unpack jdk-14.0.1_linux-x64_bin.deb ...
Unpacking jdk-14.0.1 (14.0.1-1) ...
Setting up jdk-14.0.1 (14.0.1-1) ...
calm@u20:~/Downloads$ 

查看deb包安裝是否ok

calm@u20:~$ sudo dpkg -l | grep jdk-14.0.1 
ii  jdk-14.0.1                                 14.0.1-1                                   amd64        Java Platform Standard Edition Development Kit

其中“ii”表示“installed ok installed”

如果安裝錯了,想刪除可用命令 dpkg -r package-name,即sudo dpkg -r jdk-14.0.1, r 表示 remove

程序安裝目錄在 /usr/lib/jvm/jdk-14.0.1

calm@u20:~$ tree -L 1 /usr/lib/jvm/
/usr/lib/jvm/
├── java-1.14.0-openjdk-amd64 -> java-14-openjdk-amd64
├── java-14-openjdk-amd64
├── jdk-14.0.1
└── openjdk-14

4 directories, 0 files

說明:帶關鍵字openjdk的目錄是之前安裝過的openjdk,與我們這裏安裝的oracel jdk是有差異的。另外,知道安裝目錄對我們後續的開發需要手動導入java開發環境時是有用的,這裏提一下。

查看 jdk 版本並切換

選對jdk版本對開發很重要,不同版本間存在的差異可能導致軟件運行會出現各種各樣的情況。

  • java --version 查看系統當前使用的jdk java版本
calm@u20:~$ java --version
openjdk 14.0.1 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 14.0.1+7-Ubuntu-1ubuntu1, mixed mode, sharing)

發現當前系統使用的是之前安裝的openjdk版本,(由於後續我要安裝Opengrok,它是Oracle開發的)我需要將系統默認的openjdk改稱現在安裝的(oracle) jdk:

  • update-alternatives 切換javajavac的版本

javac : 即 java代碼的編譯器,生成.class後綴的java字節碼文件;
java : 用來解釋運行 .class文件的解釋器。

切換 java 版本
sudo update-alternatives --display java
sudo update-alternatives --config java

calm@u20:~$ sudo update-alternatives --display java
java - auto mode
  link best version is /usr/lib/jvm/java-14-openjdk-amd64/bin/java
  link currently points to /usr/lib/jvm/java-14-openjdk-amd64/bin/java
  link java is /usr/bin/java
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-14-openjdk-amd64/bin/java - priority 1411
  slave java.1.gz: /usr/lib/jvm/java-14-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/jdk-14.0.1/bin/java - priority 1
calm@u20:~$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-14-openjdk-amd64/bin/java   1411      auto mode
  1            /usr/lib/jvm/java-14-openjdk-amd64/bin/java   1411      manual mode
  2            /usr/lib/jvm/jdk-14.0.1/bin/java              1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2   
update-alternatives: using /usr/lib/jvm/jdk-14.0.1/bin/java to provide /usr/bin/java (java) in manual mode
calm@u20:~$ java --version
java 14.0.1 2020-04-14
Java(TM) SE Runtime Environment (build 14.0.1+7)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)


切換 javac 版本
sudo update-alternatives --display javac
sudo update-alternatives --config javac

注意:javac --version 命令在openjdk和(oracle)jdk版本下名字都是顯示 javac version-number,無法區分,建議使用 sudo update-alternatives --config javac 命令來確認使用的是openjdk還是oracle jdk,避免 java 和 javac 版本不匹配帶來的隱藏問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章