… mit OpenJDK und JavaFX in der Version 14.
JavaFX braucht nicht extra installiert werden, wenn man ein neues Maven-Projekt über den Archetyp org.openjfx aus Maven Central erstellt. Um die Dependencies kümmert sich Maven.
In der pom.xml den Pfad zum jlinkExecutable einstellen sowie einen Launcher festlegen:
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.4</version>
<configuration>
<mainClass>package.App</mainClass>
<jlinkExecutable>/Pfad/zu/jlink</jlinkExecutable>
<launcher>MeinLauncherSkript</launcher>
</configuration>
</plugin>
Dann aus Eclipse die pom ausführen als Maven build… und bei Goals javafx:jlink einstellen.
Es wird im target-Verzeichnis ein Verzeichnis image erzeugt, dass u.a. die angepasste Java Runtime sowie ein Launcher-Skript enthält. Vom Terminal aus kann das Launcher-Skript jetzt schon gestartet werden.
Um ein schönes .app-Bundle zu erzeugen, im Terminal ins target-Verzeichnis wechseln und dann:
jpackage --type app-image -i image -n MeineApp -m mein.modul/mein.package.Mainclass --runtime-image image/
Wenn jpackage nicht gefunden wird, muss der Pfad noch händisch gesetzt werden. jpackage liegt ganz normal im bin-Verzeichnis des JDK.
Natürlich sind jeweils die richtigen Namen für die Module, Packages und Klassen einzusetzen. Es kommt dann eine schöne Mac-Application raus, die sich durch Doppelklick starten lässt. (Ich bin mir nicht sicher, ob XCode dafür installiert sein muss, damit das Packagen funktioniert. Bei mir war’s drauf.) Ist dann halt > 100 MB, aber egal. :-]