Use AdoptOpenJDK/Eclipse Adoptium to install OpenJDK 8 (LTS)/OpenJDK 11 (LTS) or OpenJDK 15 (Latest) using Eclipse OpenJ9 or HotSpot Java virtual machine.
Prerequisites
Install required packages.
$ sudo apt-get install curl gnupg apt-transport-https
Install Java
Import AdoptOpenJDK GPG public key using curl
.
$ curl --silent https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
OK
Define AdoptOpenJDK repository.
$ cat <<EOF | sudo tee -a /etc/apt/sources.list.d/adoptopenjdk.list deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ $(lsb_release --codename --short) main EOF
deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main
Update package index.
$ sudo apt update
Hit:1 http://deb.debian.org/debian buster InRelease Hit:2 http://security.debian.org/debian-security buster/updates InRelease Get:3 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb buster InRelease [6,155 B] Get:4 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb buster/main amd64 Packages [13.1 kB] Fetched 19.3 kB in 1s (16.8 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done
Search for AdoptOpenJDK packages.
$ apt-cache search adoptopenjdk
adoptopenjdk-11-hotspot - OpenJDK Development Kit 11 (JDK) with Hotspot by AdoptOpenJDK adoptopenjdk-11-hotspot-jre - OpenJDK Runtime Environment 11 (JRE) with Hotspot by AdoptOpenJDK adoptopenjdk-11-openj9 - OpenJDK Development Kit 11 (JDK) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-11-openj9-jre - OpenJDK Runtime Environment 11 (JRE) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-11-openj9xl - OpenJDK Development Kit 11 (JDK) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-11-openj9xl-jre - OpenJDK Runtime Environment 11 (JRE) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-12-hotspot - OpenJDK Development Kit 12 (JDK) by AdoptOpenJDK adoptopenjdk-12-hotspot-jre - OpenJDK Runtime Environment 12 (JRE) by AdoptOpenJDK adoptopenjdk-12-openj9 - OpenJDK Development Kit 12 (JDK) by AdoptOpenJDK adoptopenjdk-12-openj9-jre - OpenJDK Runtime Environment 12 (JRE) by AdoptOpenJDK adoptopenjdk-12-openj9xl - OpenJDK Development Kit 12 (JDK) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-12-openj9xl-jre - OpenJDK Runtime Environment 12 (JRE) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-13-hotspot - OpenJDK Development Kit 13 (JDK) with Hotspot by AdoptOpenJDK adoptopenjdk-13-hotspot-jre - OpenJDK Runtime Environment 13 (JRE) with Hotspot by AdoptOpenJDK adoptopenjdk-13-openj9 - OpenJDK Development Kit 13 (JDK) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-13-openj9-jre - OpenJDK Runtime Environment 13 (JRE) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-13-openj9xl - OpenJDK Development Kit 13 (JDK) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-13-openj9xl-jre - OpenJDK Runtime Environment 13 (JRE) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-14-hotspot - OpenJDK Development Kit 14 (JDK) with Hotspot by AdoptOpenJDK adoptopenjdk-14-hotspot-jre - OpenJDK Runtime Environment 14 (JRE) with Hotspot by AdoptOpenJDK adoptopenjdk-14-openj9 - OpenJDK Development Kit 14 (JDK) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-14-openj9-jre - OpenJDK Runtime Environment 14 (JRE) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-14-openj9xl - OpenJDK Development Kit 14 (JDK) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-14-openj9xl-jre - OpenJDK Runtime Environment 14 (JRE) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-8-hotspot - OpenJDK Development Kit 8 (JDK) with Hotspot by AdoptOpenJDK adoptopenjdk-8-hotspot-jre - OpenJDK Runtime Environment 8 (JRE) with Hotspot by AdoptOpenJDK adoptopenjdk-8-openj9 - OpenJDK Development Kit 8 (JDK) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-8-openj9-jre - OpenJDK Runtime Environment 8 (JRE) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-8-openj9xl - OpenJDK Development Kit 8 (JDK) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-8-openj9xl-jre - OpenJDK Runtime Environment 8 (JRE) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-15-hotspot - OpenJDK Development Kit 15 (JDK) with Hotspot by AdoptOpenJDK adoptopenjdk-15-hotspot-jre - OpenJDK Runtime Environment 15 (JRE) with Hotspot by AdoptOpenJDK adoptopenjdk-15-openj9 - OpenJDK Development Kit 15 (JDK) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-15-openj9-jre - OpenJDK Runtime Environment 15 (JRE) with Eclipse OpenJ9 by AdoptOpenJDK adoptopenjdk-15-openj9xl - OpenJDK Development Kit 15 (JDK) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK adoptopenjdk-15-openj9xl-jre - OpenJDK Runtime Environment 15 (JRE) with Eclipse OpenJ9 (Extra Large Heap) by AdoptOpenJDK
Install desired Java version.
$ sudo apt install adoptopenjdk-8-hotspot
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: adoptopenjdk-8-hotspot 0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/103 MB of archives. After this operation, 205 MB of additional disk space will be used. Selecting previously unselected package adoptopenjdk-8-hotspot. (Reading database ... 33674 files and directories currently installed.) Preparing to unpack .../adoptopenjdk-8-hotspot_8u265-b01-3_amd64.deb ... Unpacking adoptopenjdk-8-hotspot (8u265-b01-3) ... Setting up adoptopenjdk-8-hotspot (8u265-b01-3) ... update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/appletviewer to provide /usr/bin/appletviewer (appletviewer) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/clhsdb to provide /usr/bin/clhsdb (clhsdb) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/extcheck to provide /usr/bin/extcheck (extcheck) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/hsdb to provide /usr/bin/hsdb (hsdb) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/idlj to provide /usr/bin/idlj (idlj) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jar to provide /usr/bin/jar (jar) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/javac to provide /usr/bin/javac (javac) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/javah to provide /usr/bin/javah (javah) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/javap to provide /usr/bin/javap (javap) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jhat to provide /usr/bin/jhat (jhat) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jps to provide /usr/bin/jps (jps) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jsadebugd to provide /usr/bin/jsadebugd (jsadebugd) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/native2ascii to provide /usr/bin/native2ascii (native2ascii) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/rmic to provide /usr/bin/rmic (rmic) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/schemagen to provide /usr/bin/schemagen (schemagen) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/wsgen to provide /usr/bin/wsgen (wsgen) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/wsimport to provide /usr/bin/wsimport (wsimport) in auto mode update-alternatives: using /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/xjc to provide /usr/bin/xjc (xjc) in auto mode
Display Java version.
$ java -version
openjdk version "1.8.0_265" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)