|
|
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 19: |
Zeile 19: |
| = Alternativen der Java Tools installieren = | | = Alternativen der Java Tools installieren = |
|
| |
|
| 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 erledigt das folgende bash script. | | 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. |
|
| |
|
| <syntaxhighlight lang=bash>
| | * [[bash - AdoptOpenJDK 8]] |
| #!/bin/bash
| | * [[bash - AdoptOpenJDK 11]] |
| | |
| name=jdk8u212-b03
| |
| | |
| sudo update-alternatives --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/${name}/bin/appletviewer 180
| |
| sudo update-alternatives --install /usr/bin/extcheck extcheck /usr/lib/jvm/${name}/bin/extcheck 180
| |
| sudo update-alternatives --install /usr/bin/idlj idlj /usr/lib/jvm/${name}/bin/idlj 180
| |
| sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/${name}/bin/jar 180
| |
| sudo update-alternatives --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/${name}/bin/jarsigner 180
| |
| sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/${name}/jre/bin/java 180
| |
| sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/${name}/bin/javac 180
| |
| sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/${name}/bin/javadoc 180
| |
| sudo update-alternatives --install /usr/bin/javafxpackager javafxpackager /usr/lib/jvm/${name}/bin/javafxpackager 180
| |
| sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/${name}/bin/javah 180
| |
| sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/${name}/bin/javap 180
| |
| sudo update-alternatives --install /usr/bin/javapackager javapackager /usr/lib/jvm/${name}/bin/javapackager 180
| |
| sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/${name}/bin/javaws 180
| |
| sudo update-alternatives --install /usr/bin/jcmd jcmd /usr/lib/jvm/${name}/bin/jcmd 180
| |
| sudo update-alternatives --install /usr/bin/jconsole jconsole /usr/lib/jvm/${name}/bin/jconsole 180
| |
| sudo update-alternatives --install /usr/bin/jcontrol jcontrol /usr/lib/jvm/${name}/bin/jcontrol 180
| |
| sudo update-alternatives --install /usr/bin/jdb jdb /usr/lib/jvm/${name}/bin/jdb 180
| |
| sudo update-alternatives --install /usr/bin/jdeps jdeps /usr/lib/jvm/${name}/bin/jdeps 180
| |
| sudo update-alternatives --install /usr/bin/jexec jexec /usr/lib/jvm/${name}/jre/lib/jexec 180
| |
| sudo update-alternatives --install /usr/bin/jhat jhat /usr/lib/jvm/${name}/bin/jhat 180
| |
| sudo update-alternatives --install /usr/bin/jinfo jinfo /usr/lib/jvm/${name}/bin/jinfo 180
| |
| sudo update-alternatives --install /usr/bin/jjs jjs /usr/lib/jvm/${name}/bin/jjs 180
| |
| sudo update-alternatives --install /usr/bin/jmap jmap /usr/lib/jvm/${name}/bin/jmap 180
| |
| sudo update-alternatives --install /usr/bin/jmc jmc /usr/lib/jvm/${name}/bin/jmc 180
| |
| sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/${name}/bin/jps 180
| |
| sudo update-alternatives --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/${name}/bin/jrunscript 180
| |
| sudo update-alternatives --install /usr/bin/jsadebugd jsadebugd /usr/lib/jvm/${name}/bin/jsadebugd 180
| |
| sudo update-alternatives --install /usr/bin/jstack jstack /usr/lib/jvm/${name}/bin/jstack 180
| |
| sudo update-alternatives --install /usr/bin/jstat jstat /usr/lib/jvm/${name}/bin/jstat 180
| |
| sudo update-alternatives --install /usr/bin/jstatd jstatd /usr/lib/jvm/${name}/bin/jstatd 180
| |
| sudo update-alternatives --install /usr/bin/jvisualvm jvisualvm /usr/lib/jvm/${name}/bin/jvisualvm 180
| |
| sudo update-alternatives --install /usr/bin/keytool keytool /usr/lib/jvm/${name}/jre/bin/keytool 180
| |
| sudo update-alternatives --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/${name}/bin/native2ascii 180
| |
| sudo update-alternatives --install /usr/bin/orbd orbd /usr/lib/jvm/${name}/jre/bin/orbd 180
| |
| sudo update-alternatives --install /usr/bin/pack200 pack200 /usr/lib/jvm/${name}/jre/bin/pack200 180
| |
| sudo update-alternatives --install /usr/bin/policytool policytool /usr/lib/jvm/${name}/jre/bin/policytool 180
| |
| sudo update-alternatives --install /usr/bin/rmic rmic /usr/lib/jvm/${name}/bin/rmic 180
| |
| sudo update-alternatives --install /usr/bin/rmid rmid /usr/lib/jvm/${name}/jre/bin/rmid 180
| |
| sudo update-alternatives --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/${name}/jre/bin/rmiregistry 180
| |
| sudo update-alternatives --install /usr/bin/schemagen schemagen /usr/lib/jvm/${name}/bin/schemagen 180
| |
| sudo update-alternatives --install /usr/bin/serialver serialver /usr/lib/jvm/${name}/bin/serialver 180
| |
| sudo update-alternatives --install /usr/bin/servertool servertool /usr/lib/jvm/${name}/jre/bin/servertool 180
| |
| sudo update-alternatives --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/${name}/jre/bin/tnameserv 180
| |
| sudo update-alternatives --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/${name}/jre/bin/unpack200 180
| |
| sudo update-alternatives --install /usr/bin/wsgen wsgen /usr/lib/jvm/${name}/bin/wsgen 180
| |
| sudo update-alternatives --install /usr/bin/wsimport wsimport /usr/lib/jvm/${name}/bin/wsimport 180
| |
| sudo update-alternatives --install /usr/bin/xjc xjc /usr/lib/jvm/${name}/bin/xjc 180
| |
| </syntaxhighlight>
| |
| | |
| 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 109: |
Zeile 28: |
| = Erstellen einer jinfo Datei = | | = 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 <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 besitzt folgenden Inhalt und korrespondiert damit 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. |
| | |
| <syntaxhighlight lang=text>
| |
| name=jdk8u212-b03
| |
| alias=jdk8u212-b03
| |
| priority=1081
| |
| section=main
| |
|
| |
|
| hl rmid /usr/lib/jvm/jdk8u212-b03/jre/bin/rmid
| | * [[jinfo - AdoptOpenJDK 8]] |
| hl java /usr/lib/jvm/jdk8u212-b03/jre/bin/java
| | * [[jinfo - AdoptOpenJDK 11]] |
| hl keytool /usr/lib/jvm/jdk8u212-b03/jre/bin/keytool
| |
| hl jjs /usr/lib/jvm/jdk8u212-b03/jre/bin/jjs
| |
| hl pack200 /usr/lib/jvm/jdk8u212-b03/jre/bin/pack200
| |
| hl rmiregistry /usr/lib/jvm/jdk8u212-b03/jre/bin/rmiregistry
| |
| hl unpack200 /usr/lib/jvm/jdk8u212-b03/jre/bin/unpack200
| |
| hl orbd /usr/lib/jvm/jdk8u212-b03/jre/bin/orbd
| |
| hl servertool /usr/lib/jvm/jdk8u212-b03/jre/bin/servertool
| |
| hl tnameserv /usr/lib/jvm/jdk8u212-b03/jre/bin/tnameserv
| |
| hl jexec /usr/lib/jvm/jdk8u212-b03/jre/lib/jexec
| |
| jre policytool /usr/lib/jvm/jdk8u212-b03/jre/bin/policytool
| |
| jdkhl idlj /usr/lib/jvm/jdk8u212-b03/bin/idlj
| |
| jdkhl jdeps /usr/lib/jvm/jdk8u212-b03/bin/jdeps
| |
| jdkhl wsimport /usr/lib/jvm/jdk8u212-b03/bin/wsimport
| |
| jdkhl rmic /usr/lib/jvm/jdk8u212-b03/bin/rmic
| |
| jdkhl jinfo /usr/lib/jvm/jdk8u212-b03/bin/jinfo
| |
| jdkhl jsadebugd /usr/lib/jvm/jdk8u212-b03/bin/jsadebugd
| |
| jdkhl native2ascii /usr/lib/jvm/jdk8u212-b03/bin/native2ascii
| |
| jdkhl jstat /usr/lib/jvm/jdk8u212-b03/bin/jstat
| |
| jdkhl javac /usr/lib/jvm/jdk8u212-b03/bin/javac
| |
| jdkhl javah /usr/lib/jvm/jdk8u212-b03/bin/javah
| |
| jdkhl jps /usr/lib/jvm/jdk8u212-b03/bin/jps
| |
| jdkhl jstack /usr/lib/jvm/jdk8u212-b03/bin/jstack
| |
| jdkhl jrunscript /usr/lib/jvm/jdk8u212-b03/bin/jrunscript
| |
| jdkhl javadoc /usr/lib/jvm/jdk8u212-b03/bin/javadoc
| |
| jdkhl javap /usr/lib/jvm/jdk8u212-b03/bin/javap
| |
| jdkhl jar /usr/lib/jvm/jdk8u212-b03/bin/jar
| |
| jdkhl extcheck /usr/lib/jvm/jdk8u212-b03/bin/extcheck
| |
| jdkhl schemagen /usr/lib/jvm/jdk8u212-b03/bin/schemagen
| |
| jdkhl xjc /usr/lib/jvm/jdk8u212-b03/bin/xjc
| |
| jdkhl jmap /usr/lib/jvm/jdk8u212-b03/bin/jmap
| |
| jdkhl jstatd /usr/lib/jvm/jdk8u212-b03/bin/jstatd
| |
| jdkhl jhat /usr/lib/jvm/jdk8u212-b03/bin/jhat
| |
| jdkhl jdb /usr/lib/jvm/jdk8u212-b03/bin/jdb
| |
| jdkhl serialver /usr/lib/jvm/jdk8u212-b03/bin/serialver
| |
| jdkhl wsgen /usr/lib/jvm/jdk8u212-b03/bin/wsgen
| |
| jdkhl jcmd /usr/lib/jvm/jdk8u212-b03/bin/jcmd
| |
| jdkhl jarsigner /usr/lib/jvm/jdk8u212-b03/bin/jarsigner
| |
| jdk appletviewer /usr/lib/jvm/jdk8u212-b03/bin/appletviewer
| |
| jdk jconsole /usr/lib/jvm/jdk8u212-b03/bin/jconsole
| |
| </syntaxhighlight>
| |
|
| |
|
| <br/> | | <br/> |
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/"