Ein neues Tool namens jlink wurde in Java 9 eingeführt, das die Erstellung modularer Runtime-Images ermöglicht. Diese Runtime-Images sind nichts anderes als eine Sammlung einer Reihe von Modulen und deren Abhängigkeiten. Ein Java-Verbesserungsvorschlag, JEP 220, regelt die Struktur dieses Runtime-Images.
Das JLink-Tool wurde entwickelt, um optionale Phasen zwischen der Kompilierzeit und der Laufzeit bereitzustellen, die als Verknüpfungszeit bezeichnet werden und eine Reihe von Modulen und ihre transitiven Abhängigkeiten verknüpfen, um Laufzeitbilder zu erstellen. JLink vereinfacht die Bereitstellung und reduziert auch die Größe einer Anwendung.
Die Aufrufsyntax von jLink lautet wie folgt:
jlink --module-path [modulepath] --add-modules [modules] --limit-modules [modules] --output [path]
Hier
–Modulpfad – jLink verwendet den Modulpfad zum Auffinden von Modulen wie modularen JAR-Dateien, JMOD-Dateien
–add-modules – Erwähnen Sie das Modul, das in den Standardsatz von Modulen für das Laufzeit-Image aufgenommen werden muss, standardmäßig ist der Satz von Modulen leer.
–limit-modules – Verwenden Sie diese Option, um Module einzuschränken, die für unsere Anwendung erforderlich sind.
–Ausgabe – Das endgültige resultierende Laufzeitbild wird im Ausgabeverzeichnis
–help gespeichert – Details zu jLink-Optionen auflisten
–Version – Versionsnummer anzeigen
Wenn Sie beim Ausführen des jlink-Befehls die folgende Fehlermeldung erhalten:
jlink: command not found
Sie können das folgende Paket gemäß Ihrer Wahl der Distribution installieren.
Verteilung | Befehl |
---|---|
Debian | apt-get install openjdk-12-jdk-headless |
Ubuntu | apt-get install openjdk-9-jdk-headless |
Arch Linux | pacman -S jdk10-openjdk |
Kali-Linux | apt-get install openjdk-11-jdk-headless |
Fedora | dnf install java-9-openjdk-devel-debug-1 |
Raspbian | apt-get install openjdk-9-jdk-headless |
Schlussfolgerung
Ein neues Tool in JDK 9 ist der jlink-Befehl – Javas Linker zum Erstellen benutzerdefinierter Runtime-Images. Sie können nur das einbeziehen, was für eine bestimmte App oder einen Satz von Apps erforderlich ist, um in einer benutzerdefinierten Laufzeit ausgeführt zu werden. Wenn Sie beispielsweise eine Laufzeitumgebung für ein Gerät erstellen, das keine GUIs unterstützt, können Sie eine Laufzeitumgebung ohne die entsprechenden Module erstellen, die Swing und JavaFX unterstützen.