[JAVA] So erstellen Sie eine leichte JRE für den Vertrieb

Überblick

Ab Java 9 erleichtert die Modularisierung mit Project Jigsaw das Erstellen einfacher JREs für die Verteilung. Die leichte JRE enthält nur das Nötigste, was Ihre Anwendung verwendet, sodass Sie Ihre Dateigröße sehr klein halten können. Daher ist es eine unverzichtbare Maßnahme, wenn JRE mit einer Anwendung gebündelt wird.

Dieser Artikel beschreibt, wie eine leichte JRE erstellt wird.

Verfahren

1. OpenJDK erhalten

Holen Sie sich zuerst OpenJDK.

Dieses Mal habe ich den neuesten Stabilisator OpenJDK 11 vom 02.08.2019 verwendet. Ich werde.

Wenn die ZIP-Datei erweitert wird, sieht die Ordnerstruktur wie folgt aus.

jdk-11
 ├─ bin
 ├─ conf
 ├─ include
 ├─ jmods
 ├─ legal
 ├─ lib
 └─ release

Verwenden Sie die Ordner "bin" und "jmods", um eine einfache JRE zu generieren.

2. Abhängigkeitsprüfung

Überprüfen Sie die Abhängigkeiten der von der Anwendung verwendeten Pakete (JAR-Datei) mit dem Befehl jdeps im Ordner jdk-11 / bin. (Sie können es auch mit einem Platzhalter wie * .jar angeben.)

cd jdk-11\bin
jdeps.exe --list-deps --ignore-missing-deps C:\example\app.jar

Wenn Sie den Befehl ausführen, wird eine Liste der von dieser Anwendung verwendeten Pakete angezeigt. Sie können sehen, dass das obige Beispiel app.jar von den folgenden Paketen abhängt:

   java.base
   java.desktop
   java.logging
   java.sql
   java.xml

Mit anderen Worten, wenn mindestens diese Pakete in der JRE enthalten sind, um die Anwendung auszuführen, handelt es sich um eine Java-Ausführungsumgebung.

3. Generieren Sie eine JRE, die nur bestimmte Pakete enthält

Nachdem wir nun eine Liste der Pakete haben, die von der Anwendung mit dem Befehl jdeps verwendet werden, generieren wir eine JRE, die nur diese Pakete enthält.

Um eine JRE zu generieren, übergeben Sie einfach die erforderlichen Pakete an den Befehl jlink. Wenn Sie mehrere Pakete übergeben, trennen Sie diese durch Kommas.

jlink.exe --compress=2 --module-path ..\jmods --add-modules java.base,java.desktop,java.logging,java.sql,java.xml --output jre

Wenn Sie den Befehl ausführen, wird im aktuellen Ordner ein Ordner "jre" erstellt. Dieser generierte Ordner ist eine leichte JRE.

Jetzt müssen Sie nur noch diese kompakte JRE als Java-Ausführungsumgebung Ihrer Anwendung verwenden. Es kann problemlos verwendet werden, solange es aufgrund von Änderungen auf der Anwendungsseite nicht vom neuen Paket abhängt.

Dateigrößenvergleich

Beim Vergleich der Dateigrößen der "Originalversion" von OpenJDK 11 mit der "Lightweight-Version" der "Lightweight-Version", die nur ein bestimmtes Paket enthält [^ 1], wurden die folgenden Ergebnisse erzielt.

Originalfassung Leichte Version
299M 46M

Die Lightweight-Version von JRE enthält nur die für Ihre Anwendung erforderlichen Mindestpakete, sodass die Dateigröße gering gehalten wird.

Aufgrund des großen Unterschieds in der Dateigröße wird empfohlen, vor dem Bündeln eine einfache JRE zu generieren, wenn Sie diese mit Ihrer Anwendung bündeln.

Recommended Posts

So erstellen Sie eine leichte JRE für den Vertrieb
Wie erstelle ich einen MOD für Slay the Spire?
So erstellen Sie einen Java-Container
So erstellen Sie einen JDBC-Treiber
So erstellen Sie einen Begrüßungsbildschirm
So erstellen Sie ein Jenkins-Plug-In
Wie erstelle ich ein Maven-Projekt?
So erstellen Sie ein Java-Array
So erstellen Sie eine Java-Kalenderzusammenfassung
So erstellen Sie ein Maven-Repository für 2020
Wie erstelle ich einen Discord Bot (Java)
Wie man einen revolutionären Diamanten mit Java für Aussage macht wwww
So erstellen Sie überall eine H2-Datenbank
So erstellen Sie Pagenationen für das "Kaminari" -Array
Wie man ein schattiertes Glas macht
[Java] Wie man mehrere for-Schleifen einzeln macht
So erstellen Sie eine Beurteilungsmethode, um nach einem beliebigen Zeichen im Array zu suchen
So verwenden Sie ein Array für den TreeMap-Schlüssel
So schreiben Sie einen Komponententest für Spring Boot 2
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Wie man einen Cache erstellt, ohne zu viel nachzudenken
Java - So erstellen Sie JTable
Wie hinterlasse ich einen Kommentar?
[Schienen] Wie man Samen macht
So fügen Sie ein Video ein
So erstellen Sie eine Methode
SDWebImage: So löschen Sie den Cache für eine bestimmte UIImageView
Ruby mit AtCoder lernen 13 So erstellen Sie ein zweidimensionales Array
So geben Sie Array-Werte ohne Verwendung einer for-Anweisung aus
Minecraft Modding [1.12] So fügen Sie einen speziellen Render für Item hinzu
So erstellen und starten Sie eine Docker-Datei für Payara Micro
Versuchen Sie, einen einfachen Rückruf zu tätigen
So legen Sie die Validierung für time_field fest
So installieren Sie JMeter für Mac
Wie unterschreibe ich Minecraft MOD?
[Swift] So senden Sie eine Benachrichtigung
Versuchen Sie, einen Iterator zu erstellen, der einen Blick darauf werfen kann
[Android] So erstellen Sie ein Dialogfragment
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
So identifizieren Sie den Pfad, auf dem leicht Fehler gemacht werden können
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
So führen Sie einen Vertrag mit web3j aus
So sortieren Sie eine Liste mit Comparator
Ein Memorandum zur Verwendung von Eclipse
Verwendung von binding.pry für die Ansichtsdatei
So installieren Sie Play Framework 2.6 für Mac
[Basic] So schreiben Sie ein Dockerfile Selbstlernend ②
So fügen Sie ein Video in Rails ein
[Java] So drehen Sie ein zweidimensionales Array mit einer erweiterten for-Anweisung
So fügen Sie einen neuen Hash / Array hinzu