Java Version 8 als auch 11 sind LTS-Versionen *1) bei denen Wert auf Stabilität statt “Featuritis” gelegt wird: also genau die richtige Basis für Java-Entwickler (JDK) – aber auch für Java-Benutzer (JRE). *2)
Bei Debian GNU/Linux ist Java 11 erst ab Version 10 “Buster” Standard; unter Debian 9 “Stretch” ist das noch good ole Java 8.
“Alle (halb-) Jahre wieder …”
Alle 6 Monate wird eine neue Version von Java veröffentlicht; nur alle 2 Jahre ist das eine – entsprechend ausgereifte – LTS. Das wäre nicht schlimm, aber: Auf Java.com gibt es OHNE Registrierung (Oracle Account) immer nur die neueste Version. Und 6 Monate nach Erscheinen der nächsten LTS gibt es auch diese nur noch nach Preisgabe meiner persönlichen Daten (Account)! Was nun?
OpenJDK – Die Basis von Java
Ein Glück, daß Java auf dem quelloffenen OpenJDK basiert und letzteres von Haus aus zu Debian (und seinen Abkömmlingen Ubuntu, LinuxMint, MX-Linux, usw.) gehört. So muß man unter Linux keinen Müll benutzen.
Also nix apt, sondern händisch installieren nach Download von der Homepage – und bei Sicherheitslücken händisch aktualisieren? Nein!
Aber wie bekomme ich das OpenJDK 11 von Debian 10 auf Debian 9, ohne auf bequemes Aktualisieren via Paket-Management (apt, aptitude, Synaptic) verzichten zu müssen? Die Lösung:
Backports!
Dazu gibt es unter Debian die sogenannten Backports (dt. “Rück-Portierungen”). Nach (einmaligem) Einbinden des entsprechenden Repositorys (hier: stretch-backports) sind viele / wichtige App-Versionen der aktuellen Distribution (“stable”, hier: 10) in der Vorversion (“oldstable”, hier: 9) via apt & Co verfügbar.
Am einfachsten installiert man Version OpenJDK 11.x zusätzlich zur Version 8.x und setzt Version 11.x als Standard. So ist sichergestellt, daß auch “angestaubte” Java-Programme sauber laufen können…
Die nötigen Kommandos könnte man in ein bash Skript packen, z. B.:
#!/bin/bash
### -----------------------------------------------
### OpenJDK-11 for Debian 9 "Stretch"
### Copy me - I want to travel ;-)
### -----------------------------------------------
SRV="http://ftp.debian.org/debian"
APTDIR="/etc/apt/sources.list.d"
BAKPRT="stretch-backports"
NEWJDK="openjdk-11-jdk"
# get default java version - normally Version 8.x
java -version
# add backports to apt repositories
# only run ONCE !
echo 'deb $SRV $BAKPRT main' | sudo tee $APTDIR/$BAKPRT.list
# re-read repos
sudo apt update
# get OpenJDK-11
sudo apt install $NEWJDK
# set preferred jdk version
# select / type 0 (zero) for Version 11 "automatic "
sudo update-alternatives --config java
# call once more to switch to another installed java version
# get default java version - now Version 11.x
java -version
# perhaps some other updates ...
# sudo apt upgrade
Derzeit (06/2020) gibt es von einem Ubuntu-User auch ein PPA *3), über das man Oracle-Java nach-installieren kann. Mit dem nachfolgenden Code sollte das nicht nur unter Ubuntu 18.04 LTS “Bionic Beaver”, sondern auch bei Debian Stretch, Linux Mint, usw. klappen:
#!/bin/bash
#############################################################
# alternatively install Oracle Java 11 via Ubuntu-PPA
# works for Ubuntu "Bionic" as well as for Debian "Stretch"
#############################################################
PPA="http://ppa.launchpad.net/linuxuprising/java"
DISTRO="ubuntu bionic"
KEYSRV="hkp://keyserver.ubuntu.com:80"
KEYID="73C3DB2A"
APTDIR="/etc/apt/sources.list.d"
echo "deb $PPA/$DISTRO main" | sudo tee $APTDIR/linuxuprising-java.list
sudo apt-key adv --keyserver $KEYSRV --recv-keys $KEYID
sudo apt update
sudo apt install oracle-java11-set-default
##############################################################
(linuxuprising-java.list gehört noch mit zum tee Kommando)
Fußnoten
- JDK = Java Development Kit (Entwicklungs-Umgebung)
JRE = Java Runtime Environment (Laufzeit-Umgebung) - LTS = Long Term Service bzw. Long Term Support, d.h.
langzeit-unterstützte Version für den Unternehmenseinsatz.
Debian ist grundsätzlich “LTS”; man könnte aber auch Entwicklerversionen installieren:
– “Testing” (schon relativ ausgereifte Nachfolgeversion) oder
– “unstable” (benannt nach dem Kaputtmacher “SID”) - PPA = persönliches Repository auf Ubuntu “Launchpad”