2017-11-14 3 views
4

Wenn wir Jlink Runtime Images erstellen können wir Tags wie '--strip-debug', '--compress', '2', '--no-header-files', 'verwenden --no-man-pages ', erstellt einen Distributionsordner um 45mb.Java9 Packager mit Jlink compress Tags

Wenn wir javapackager verwenden möchten, um beispielsweise eine .DMG-Datei zu erstellen, wie können wir eine ähnliche Komprimierung durchführen? da diese Tags nicht für javapackager verfügbar sind. Ohne sie ist das finale Bundle ungefähr 100mb, was die Vorteile von java9 Modularisierung stark einbüßt, so ist meine Frage, ob es möglich ist, den javapackager mit JRE Laufzeitbildern zu verwenden, die von jlink erstellt wurden.

Für MacOSX Beispiel:

dank

Antwort

3

meine eigene Frage zu beantworten, können wir die Kombination von zwei verwenden nur

1) erzeugen eine Laufzeit dist mit JLINK, wird dies einen lib Ordner erstellen mit ungefähr 50mb, wenn Sie compress-Tags verwenden.

2) Generiere MacOSX.app mit javapackager, diese .app wird mit einem Runtime lib Ordner um 98mb kommen.

3) Einfach ersetzen Sie sie, klicken Sie mit der rechten Maustaste auf MacOSX.app-> "Paketinhalt anzeigen", dann gehen Sie zu Plugins/Java.runtime/Contents/Home/und ersetzen lib Ordner mit dem von jLink generiert.

Auf diese Weise haben Sie eine in sich geschlossene Java-App mit etwa 50 MB anstelle von 100 MB, dank der schönen Java9-Module.

Wäre cool, all dies nur mit javapackager zu tun, wenn es möglich ist, konnte ich nicht finden, wie, schlage ich vor, etwas wie gradle zu verwenden, um diesen ganzen Prozess mit 1 Befehl auszuführen.