AdoptOpenJDK Installation unter Ubuntu (Alternativen-System): Unterschied zwischen den Versionen
Jochen (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Diese Anleitung beschreibt die Installation des ''OpenJDK 8 (LTS)'' der [https://adoptopenjdk.net/ AdoptOpenJDK] Distribution unter Ubuntu 18.04. Es wird davon…“) |
Jochen (Diskussion | Beiträge) |
||
| Zeile 5: | Zeile 5: | ||
= Download des OpenJDK = | |||
Java OpenJDK Distributionen könne für alle gängigen Betriebssysteme auf der Homepage von [https://adoptopenjdk.net/ AdoptOpenJDK] heruntergeladen werden. | Java OpenJDK Distributionen könne für alle gängigen Betriebssysteme auf der Homepage von [https://adoptopenjdk.net/ AdoptOpenJDK] heruntergeladen werden. Zur Einfachheit soll die Distribution <code>jdk8u212-b03</code> heißen. Die bei [https://adoptopenjdk.net/ AdoptOpenJDK] heruntergeladene Datei trug den Namen ''OpenJDK8U-jdk_x64_linux_hotspot_8u212b03.tar.gz''. | ||
<br> | <br/> | ||
= Entpacken des OpenJDK = | |||
Das OpenJDK muss als root in das Verzeichnis <code>/usr/lib/jvm</code> entpackt werden. Hierzu muss das AdoptOpenJDK in ein eigenes Verzeichnis entpackt werden, welches nun neben dem bereits durch Ubuntu ausgelieferten OpenJDK liegt. | Das OpenJDK muss als root in das Verzeichnis <code>/usr/lib/jvm/jdk8u212-b03</code> entpackt werden. Hierzu muss das AdoptOpenJDK in ein eigenes Verzeichnis entpackt werden, welches nun neben dem bereits durch Ubuntu ausgelieferten OpenJDK liegt. | ||
<br/> | |||
= 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. | |||
<syntaxhighlight lang=bash> | |||
#!/bin/bash | |||
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> | |||
<br/> | |||
= Erstellen der 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. | |||
<syntaxhighlight lang=text> | |||
name=jdk8u212-b03 | |||
alias=jdk8u212-b03 | |||
priority=1081 | |||
section=main | |||
hl rmid /usr/lib/jvm/jdk8u212-b03/jre/bin/rmid | |||
hl java /usr/lib/jvm/jdk8u212-b03/jre/bin/java | |||
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/> | |||
Version vom 5. Mai 2019, 12:52 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 erledigt das folgende bash script.
#!/bin/bash
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
Erstellen der 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 besitzt folgenden Inhalt und korrespondiert damit zu den oben installierten Alternativen aller Java Tools der beschriebenen Distribution.
name=jdk8u212-b03
alias=jdk8u212-b03
priority=1081
section=main
hl rmid /usr/lib/jvm/jdk8u212-b03/jre/bin/rmid
hl java /usr/lib/jvm/jdk8u212-b03/jre/bin/java
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