© Excellent backgrounds/Shutterstock.com
Teil 2: Erstellen von modularen Laufzeit-Images mit jlink

Nur das, was wir wirklich brauchen


Während des Softwareentwicklungsprozesses begegnen wir verschiedenen Situationen, in denen wir ein kundenspezifisches Java Runtime Environment (JRE) für unser Betriebssystem benötigen. Die Gründe dafür sind unterschiedlich: Vielleicht wollen wir eine bessere Leistung erzielen oder haben einige kundenspezifische Bibliotheken, die nur mit einem bestimmten Betriebssystem funktionieren. jlink hilft uns, diese Probleme zu lösen, indem wir mit seiner Hilfe eine benutzerdefinierte Version vom JRE erstellen können, die maßgeschneidert auf unser Betriebssystem ist und nur die Module enthält, die wir wirklich benötigen.

Artikelserie

Teil 1: Java-9-Anwendungen kompilieren, paketieren und ausführen

Teil 2: Erstellen von modularen Laufzeit-Images mit jlink

Teil 3: Top-down- und Bottom-up-Migration

Java 9 stellt ein neues Werkzeug für die dynamische Verknüpfung von Modulen vor: jlink. Es hat die Aufgabe, eine Gruppe von Modulen zusammenzubauen, um dadurch ein Laufzeit-Image zu erzeugen. Um jlink zu verwenden, sind keine Änderungen im Quellcode erforderlich. jlink stellt in einem maßgeschneiderten Laufzeit-Image die Module zusammen. Es ändert die module-info.class-Dateien nicht. jlink startet mit den Modulen, die wir angeben, anschließend sucht es rekursiv nach allen requires-Anweisungen innerhalb der Deskriptoren der angegebenen Module. Ein Laufzeit-Image, das von jlink erzeugt wurde, enthält die minimale Anzahl der benötigten Module zusammen mit all ihren Abhängigkeiten. Während des Baus des Laufzeit-Images sind wir in der Lage, genau zu spezifizieren, welche Module dem Laufzeitbild hinzugefügt werden sollen. Als Ergebnis wird eine plattformspezifische, binäre, ausführbare Datei erstellt.

Das jlink-Werkzeug führt den Auflösungsprozess aus, um die für die Erzeugung des Laufzeit-Images erforderlichen Module zu berechnen. Das minimale Laufzeit-Image, das wir hypothetisch mit jlink erzeugen können, ist ein Laufzeit-Image, das nur das Hauptmodul java.base enthält. Basierend auf der Art der Plattformmodule erkennt jlink, welche die Zielplattform ist. Wenn wir beispielsweise ein Linux-Betriebssystem haben und einen Modulpfad an ein Windows-System weitergeben, wird jlink die Windows-Versionen dieser Module verknüpfen und ein Windows-Laufzeit-Image erzeugen. Es ist wichtig zu wissen, dass der Modulpfad, den wir jlink angeben, das Modul für die Zielplattform sein muss.

Die jlink-Images sind für jedes Betriebssystem spezifisch und sind eine Anpassung des JDKs und der JRE. Ein ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang