Wie man ein FatJar für Swing bzw. Konsolenanwendungen mit Maven erzeugt habe ich im Tutorial Maven: Erstellen eines lauffähigen FatJar’s erläutert. Für die Technologie JavaFX ist es nun möglich ausführbare JAR Dateien zu erstellen d.h. diese Pakete müssen nicht mehr über
java -jar xyz.jar
ausgeführt werden, sondern sind mit einem Doppelklick aus dem Explorer lauffähig.
Ich habe das folgende unter Microsoft Windows 10 ausprobiert, ein test unter Linux steht noch aus aber ich erwarte keine größeren Schwierigkeiten.
Zum Erzeugen dieser lauffähigen JAR Datei wird das Apache Maven Plugin benötigt, welches in der Datei “pom.xml” wie folgt konfiguriert wird.
<plugin> <groupId>com.zenjava</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>8.7.0</version> <configuration> <mainClass>de.draegerit.Main</mainClass> <bundler>EXE</bundler> </configuration> </plugin>
Es muss hier nur der Tag “mainClass” auf die Klasse mit der Methode “public static void main(String[] args){…}” angepasst werden.
Nachdem das Plugin installiert und das lokale Maven Repository aktualisiert wurde (Eclipse startet den Updatevorgang sobald man die Datei speichert.) kann auf der Kommandozeile mit dem Befehl:
mvn jfx:jar
ein lauffähiges FatJar erzeugt werden.
Dazu wird im Ordner “target” ein weiterer Ordner namens “jfx” angelegt, wo das Programm zu finden ist.
Wie gut zu erkennen ist, wird auch ein Ordner “lib” erzeugt, wo die abhängigen Bibliotheken abgelegt werden. Darum ist die Bezeichnung “FatJar” nicht mehr zutreffend, denn die Jar Datei bleibt dadurch sehr klein. (Obwohl diese ohne den “lib” Ordner nicht funktionieren würde.)