Ein erstes “Hello World” von JavaFX mit Maven

https://oer-informatik.de/jfx_01_initialisierung_des_projekts

tl/dr; (ca. 3 min Lesezeit): Erstellung eines JavaFX-Projekts, Aufbau der Maven-Konfiguration pom.xml und Starten des Programms (auch mit Maven). Artikel ist Teil eines JavaFX-Tutorials.

Das Build-System Maven

Software-Projekte nutzen häufig Bibliotheken oder Module, die geladen und eingebunden werden müssen. Beispielsweise wollten wir das Modul JavaFX nutzen, haben dies aber bislang noch gar nicht installiert. Wir können uns jetzt selbst um alle Abhängigkeiten kümmern, diese aus dem Netz laden, einbinden usw. oder uns von einem Build-System wie Maven oder Gradle helfen lassen.

In diesem Beispiel werde ich Maven nutzen, wir werden später sehen, dass die Auflösung von Abhängigkeiten nur ein kleiner Teil der Aufgaben eines Build-Systems ist.

Ein neues JavaFX-Projekt erzeugen

Wenn in VSCode das Java Extension Pack installiert ist, lässt sich über die Commandos ein neues Java-Projekt erstellen: Per Tastatur: Strg-Shift-P oder über das Menü Help / Show All Commands:

Menü Help / Show All Commands
Menü Help / Show All Commands

In dem Eingabefeld kann per Dropdown eingegeben oder per Eingabe vorausgewählt werden. Bei Eingabe von “Create Java” erscheint der für uns richtige Punkt “Java: Create Java Project”:

Eingabe “Create Java” sollte das Auswahlmenü “Create”
Eingabe “Create Java” sollte das Auswahlmenü “Create”

Es soll ein JavaFX Projekt mit Maven erzeugt werden, daher wähle ich “JavaFX”:

Eingabe “JavaFX”
Eingabe “JavaFX”

Die GruppenID ist so etwas, wie eine umgekehrte Domäne: sie dient dazu, Pakete und Module zu gliedern und zu finden (kleingeschrieben):

GruppenID eingeben: de.csbme.ifaxx
GruppenID eingeben: de.csbme.ifaxx

Als Name des Softwareprodukts (“Artefakt”) wähle ich “energymonitor” (kleingeschrieben):

Name des Softwareprodukts eingeben: “energymonitor”
Name des Softwareprodukts eingeben: “energymonitor”

Anschließend muss noch der Speicherort gewählt werden.

Wenn das geschehen ist geht es im Terminal (unten in VS Code) weiter: Maven beginnt direkt damit, die nötigen Abhängigkeiten zu laden - z.B. alle Module, die für JavaFX nötig sind. Man kann das in VSCode erkennen, wenn man unten das Terminal öffnet:

Abhängigkeiten werden geladen
Abhängigkeiten werden geladen

Leider wurden immernoch nicht alle Infos abgefragt, die zum Projektstart erforderlich sind. Im Terminal muss noch die Version eingegeben werden (oder per Return der Defaultwert bestätigt werden):

Eingabe der Versionsnummer
Eingabe der Versionsnummer

Anschließend müssen alle Eingaben noch einmal bestätigt werden (mit “Y” oder Return):

Eingaben mit “Y” oder Return bestätigen
Eingaben mit “Y” oder Return bestätigen

Jetzt wird die Zusammenfassung ausgegeben, die Dateien werden unter dem Pfad angelegt und man hat die Möglichkeit, den Ordner direkt zu öffnen (“Open” unten in der rechten Ecke):

Eingaben mit “Y” oder Return bestätigen
Eingaben mit “Y” oder Return bestätigen

Was wurde erzeugt?

Das Buildsystem Maven hat eine Verzeichnisstruktur, Konfigurationsdateien und ein kleines Beispielprogramm angelegt. Wir wollen uns zunächst zwei Dateien anschauen: die pom.xml und die Startdatei der App, die darin konfiguriert wird:

Inhalt der pom.xml
Inhalt der pom.xml

In der pom.xml werden die Eingaben, die wir im Rahmen der Projektinitialisierung gemacht haben gespeichert - und können dort geändert werden. Es wurden zudem automatisch alle Abhängigkeiten und Versionen eingefügt, die für das Projekt erforderlich sind.

Zusätzlich wird genannt, welche Klasse den Startpunkt des Programms darstellt (grün): <mainClass>de.csbme.ifaxx.App</mainClass>: also im Package de.csbme.ifaxx die Klasse App. Diese Klasse wird unser Ausgangspunkt für weitere Erkundungen sein.

Hier nochmal die wesentlichen Abschnitte (gekürzt) der pom.xml:

Ausführen des JavaFX-Projekts

Inhalt der pom.xml
Inhalt der pom.xml

Über Maven wird ein Java-Programm ausgeführt, in dem der Pfad zur pom.xml-Datei übergeben wird:

Nächste Schritte

Dieser Artikel ist ein Teil der Artikelserie zu einer Energiemonitors mit JavaFX.

Das Projekt ist erstellt, jetzt kommt das unweigerliche Hello World mit JavaFX.

Quellen und offene Ressourcen (OER)

Die Ursprungstexte (als Markdown), Grafiken und zugrunde liegende Diagrammquelltexte finden sich in weiterbearbeitbarer Form im gitlab-Repository unter https://gitlab.com/oer-informatik/java-fx/ersteschritte und sind zur Nutzung als Open Education Resource (OER) freigegeben gemäß der Creative Commons Namensnennung 4.0 International Lizenz (CC BY 4.0). Creative Commons Lizenzvertrag

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: