- Das Problem
- JavaFXC jar erstellen
Inhaltsverzeichnis
Falconbyte unterstüzen
Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.
Das Problem
In Java 1.8 konnten wir über den Artifact-Builder noch sehr unkompliziert eine IDE-unabhängige JavaFX-Applikation als ausführbare jar-Datei erstellen.
In den Folgeversionen von Java war JavaFX nicht mehr integriert und so erhalten wir bereits, wenn wir in IntelliJ zum Artifact Builder wechseln, einen bösen Warnhinweis:
Can't build artifact – fx:deploy is not available in this JDK
Der fx:deploy Job, von dem hier die Rede ist, war ein Teil des Ant-Plugins, das für das Packaging des Programms in eine ausführbare jar-Datei verantwortlich war. Dieses Ant-Plugin ist in den aktuellen JDK-Versionen aber nicht mehr enthalten.
Kurzum: Wir können unser JavaFX-Programm nicht ohne Weiteres in eine ausführbare jar-Datei packen.
Es gibt im Netz einige Workarounds für das Problem:
Eine sehr einfache Lösung bietet der youtube-Kanal von The Code Implementation.
Diese Lösung schauen wir uns nun an.
JavaFX als jar-Datei ausführen
Hier der Workaround für das Erstellen einer ausführbaren jar-Datei für dein JavaFX-Programm in IntelliJ:
Schritt 1.
Erstelle im gleichen Paket, in der deine Startklasse liegt, eine neue ebenfalls ausführbare Klasse mit main-Methode:
package sample;
public class FakeMain {
public static void main(String[] args) {
sample.Main.main(args);
}
}
Wichtig: Innerhalb der Main-Methode muss die Anweisung nach folgendem Muster stehen:
paketName.Startklasse.main(args);
Schritt 2.
Wähle in IntelliJ in der oberen Menuleiste File > Project Structure... aus. In dem sich öffnenden Fenster gehst du unter Project Settings zum Punkt Artifacts. Klicke anschließend das "+" Icon und wähle JAR > From modules with dependencies...
Schritt 3.
Im jetzt erscheinen Fenster "Create JAR from Modules" wählst du als Main Class die Klasse FakeMain aus und gibst unten das Zielverzeichnis an, in das die JAR-Datei gespeichert werden soll.
Schritt 4.
Wähle das soeben erstellte Artifact aus und füge ihm alle Dateien aus dem lib (bzw. bin) Ordner des JavaFX-SDKs hinzu (außer einer möglicherweise existierenden zip-Datei). Klicke dazu auf das "+" Zeichen, wähle dann File und füge anschließend die Dateien hinzu.
Schritt 4.
Wähle nun in der oberen Menuleiste von IntelliJ den Punkt Build > Build Articats... aus. Es erscheint ein kleines Pop-Up-Fenster. Klicke hier unter Action auf "Build". Deine ausführbare JAR-Datei sollte nun im angegebenen Verzeichnis liegen.
jar-Datei starten
Um die jar-Datei zu starten, öffnen wir das Terminal unter MacOS bzw. die Eingabeaufforderung unter Windows.
Wechsle jetzt innerhalb des Terminals/ der Eingabeaufforderung zuerst in das Verzeichnis, in dem sich die auszuführende jar-Datei befindet. Gib hierzu dem Befehl cd (mit Leerzeichen) und den entsprechenden Pfad ein. Du kannst auch einfach den Ordner direkt aus dem Finder bzw. DateiExplorer via Drag & Drop in das Terminal ziehen (cd und Leerzeichen müssen aber vorher in jedem Fall eingetippt werden):
cd /users/PfadzurDatei
Letzter Schritt: Gib den Befehl zum Ausführen der jar-Datei nach diesem Muster ein:
java -jar dateiname.jar