AdoptOpenJDK Installation unter Ubuntu (Alternativen-System): Unterschied zwischen den Versionen

Aus Wiki - Jochen Hammann
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 21: Zeile 21:
Ubuntu verwendet ein [https://wiki.ubuntuusers.de/Alternativen-System/ Alternativen-System], mit dessen Hilfe zwischen verschiedenen Versionen eines Tools gewechselt werden kann. Dieses Alternativen-System wird ebenfalls verwendet, zwischen verschiedenen Java Distributionen zu wechseln - sprich zwischen allen ca. 40 Java Tools zu wechseln. Alternativen werden hierbei durch mehrfache Verlinkungen realisiert (siehe auch <code>/etc/alternatives/</code>). Bevor zwischen verschiedenen Alternativen gewechselt werden kann, müssen die jeweiligen Tools im Alternativen-System installiert werden. Dies erledigen folgende bash Skripte.
Ubuntu verwendet ein [https://wiki.ubuntuusers.de/Alternativen-System/ Alternativen-System], mit dessen Hilfe zwischen verschiedenen Versionen eines Tools gewechselt werden kann. Dieses Alternativen-System wird ebenfalls verwendet, zwischen verschiedenen Java Distributionen zu wechseln - sprich zwischen allen ca. 40 Java Tools zu wechseln. Alternativen werden hierbei durch mehrfache Verlinkungen realisiert (siehe auch <code>/etc/alternatives/</code>). Bevor zwischen verschiedenen Alternativen gewechselt werden kann, müssen die jeweiligen Tools im Alternativen-System installiert werden. Dies erledigen folgende bash Skripte.


[[bash - AdoptOpenJDK 8]]
* [[bash - AdoptOpenJDK 8]]
[[bash - AdoptOpenJDK 11]]
* [[bash - AdoptOpenJDK 11]]
 
 
Alternativ kann auch das folgende Skript verwendet werden. Dieses wurde von [https://askubuntu.com/questions/1079239/can-not-install-jdk11-using-update-alternatives-install hier] kopiert.
 
<syntaxhighlight lang=bash>
#!/bin/bash
 
if [[ $# -eq 0 ]] ;then
    echo "Usage: jdk-11.sh [-i|-r]"
    echo "  -i install alternatives for jdk-11"
    echo "  -r remove alternatives for jdk-11"
    exit -1
fi
 
install_dir="openjdk-11+28-amd64"
 
cmd=(java jexec jjs keytool pack200 rmid rmiregistry unpack200 jaotc jarsigner jar javac javadoc javap jcmd jdb jdeprscan jdeps jhsdb jimage jinfo jlink jmap jmod jps jrunscript jshell jstack jstatd jstat rmic serialver jconsole)
 
if [[ "$1" == "-i" ]] ;then
    for c in ${cmd[@]}; do
        update-alternatives --install /usr/bin/$c $c /usr/lib/jvm/$install_dir/bin/$c 1102
    done
fi
 
if [[ "$1" == "-r" ]] ;then
    for c in ${cmd[@]}; do
        update-alternatives --remove $c /usr/lib/jvm/$install_dir/bin/$c
        update-alternatives --auto $c
    done
fi
</syntaxhighlight>


<br/>
<br/>
Zeile 61: Zeile 30:
Bei der jinfo Datei handelt es sich um eine versteckte Datei mit dem Namen des jeweiligen OpenJDK - sprich des jeweiligen Verzeichnisnamens - und der Endung <code>.jinfo</code>. Da es sich hierbei um eine versteckte Datei handelt muss diese mit einem Punkt beginnen. Die jinfo Datei liegt im Verzeichnis <code>/usr/lib/jvm/</code> D.h. in diesem Beispiel muss die Datei <code>/usr/lib/jvm/.jdk8u212-b03.jinfo</code> angelegt werden. Die jinfo Datei wird durch das Tool <code>update-java-alternatives</code> verwendet, welches alle Alternativen aller spezifizierten Java Tools in einem Aufruf umsetzt. Die jinfo Datei korrespondiert zu den oben installierten Alternativen aller Java Tools der beschriebenen Distribution.
Bei der jinfo Datei handelt es sich um eine versteckte Datei mit dem Namen des jeweiligen OpenJDK - sprich des jeweiligen Verzeichnisnamens - und der Endung <code>.jinfo</code>. Da es sich hierbei um eine versteckte Datei handelt muss diese mit einem Punkt beginnen. Die jinfo Datei liegt im Verzeichnis <code>/usr/lib/jvm/</code> D.h. in diesem Beispiel muss die Datei <code>/usr/lib/jvm/.jdk8u212-b03.jinfo</code> angelegt werden. Die jinfo Datei wird durch das Tool <code>update-java-alternatives</code> verwendet, welches alle Alternativen aller spezifizierten Java Tools in einem Aufruf umsetzt. Die jinfo Datei korrespondiert zu den oben installierten Alternativen aller Java Tools der beschriebenen Distribution.


[[jinfo - AdoptOpenJDK 8]]
* [[jinfo - AdoptOpenJDK 8]]
* [[jinfo - AdoptOpenJDK 11]]


<br/>
<br/>

Aktuelle Version vom 14. Oktober 2019, 19:56 Uhr

Diese Anleitung beschreibt die Installation des OpenJDK 8 (LTS) der AdoptOpenJDK Distribution unter Ubuntu 18.04. Es wird davon ausgegangen, dass bereits ein von Ubuntu ausgelieferte OpenJDK (8 oder 11) installiert ist. Diese Beschreibung basiert in großen Teilen auf diesem Artikel.



Download des OpenJDK

Java OpenJDK Distributionen könne für alle gängigen Betriebssysteme auf der Homepage von AdoptOpenJDK heruntergeladen werden. Zur Einfachheit soll die Distribution jdk8u212-b03 heißen. Die bei AdoptOpenJDK heruntergeladene Datei trug den Namen OpenJDK8U-jdk_x64_linux_hotspot_8u212b03.tar.gz.


Entpacken des OpenJDK

Das OpenJDK muss als root in das Verzeichnis /usr/lib/jvm/jdk8u212-b03 entpackt werden. Hierzu muss das AdoptOpenJDK in ein eigenes Verzeichnis entpackt werden, welches nun neben dem bereits durch Ubuntu ausgelieferten OpenJDK liegt.


Alternativen der Java Tools installieren

Ubuntu verwendet ein Alternativen-System, mit dessen Hilfe zwischen verschiedenen Versionen eines Tools gewechselt werden kann. Dieses Alternativen-System wird ebenfalls verwendet, zwischen verschiedenen Java Distributionen zu wechseln - sprich zwischen allen ca. 40 Java Tools zu wechseln. Alternativen werden hierbei durch mehrfache Verlinkungen realisiert (siehe auch /etc/alternatives/). Bevor zwischen verschiedenen Alternativen gewechselt werden kann, müssen die jeweiligen Tools im Alternativen-System installiert werden. Dies erledigen folgende bash Skripte.


Erstellen einer jinfo Datei

Bei der jinfo Datei handelt es sich um eine versteckte Datei mit dem Namen des jeweiligen OpenJDK - sprich des jeweiligen Verzeichnisnamens - und der Endung .jinfo. Da es sich hierbei um eine versteckte Datei handelt muss diese mit einem Punkt beginnen. Die jinfo Datei liegt im Verzeichnis /usr/lib/jvm/ D.h. in diesem Beispiel muss die Datei /usr/lib/jvm/.jdk8u212-b03.jinfo angelegt werden. Die jinfo Datei wird durch das Tool update-java-alternatives verwendet, welches alle Alternativen aller spezifizierten Java Tools in einem Aufruf umsetzt. Die jinfo Datei korrespondiert zu den oben installierten Alternativen aller Java Tools der beschriebenen Distribution.


Update der Berechtigungen

Für die neue OpenJDK Distribution unter /usr/lib/jvm/ sowie die jinfo Datei sollte als Owner root:root gesetzt werden.


Update der Java Alternative

Zum aktualisieren oder setzen der jeweiligen Java Alternative wird das Tool update-java-alternatives verwendet. Dieses in dem Paket java-common enthalten. Sollte dieses noch nicht unter Ubuntu installiert sein, muss folgender Befehl ausgeführt werden.

sudo apt install java-common

Bevor nun zur neu installierten OpenJDK Distribution gewechselt wird, können mit Hilfe des folgenden Befehls alle Java Alternativen dargestellt werden.

update-java-alternatives -l

Nun kann mit folgendem Befehl zur neu installierten OpenJDK Distribution gewechselt werden.

sudo update-java-alternatives -s jdk8u212-b03


JAVA_HOME setzen

Die Umgebungsvariable JAVA_HOME sollte an die neu konfigurierte Java Alternative angepasst werden. Dies kann in der Datei /etc/environment erfolgen.

JAVA_HOME="/usr/lib/jvm/jdk8u212-b03/"