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 版本不匹配带来的隐藏问题。

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