Maven & JavaFX für Werner
ChangeLog:
- 13.12.2022: "Malen mit der Maus" (als Seite 4) hinzugefügt ("Gierige Programmierer"
ist auf Seite 5 gewandert)
- 13.12.2022: Inhaltsverzeichnis hinzugefügt
- 08.12.2022: NetBeans-15 auf NetBeans-16 aktualisiert
- 08.12.2022: Nummerierung der Code-Fragmente hinzugefügt (zum schnelleren
Wiederfinden)
- 08.12.2022: Erster Aufruf von NetBeans ergänzt, weil sonst die nötigen
Menüeinträge fehlen (Absatz nach Code-Fragment 6)
Moin Werner,
ich dachte, ich schreibe hier mal auf, wie ich die Sache mit Maven und JavaFX angehen würde.
Daher gibt es hier nun eine kleine Step-By-Step Beschreibung, auch mit ein paar Bildchen,
damit du dir das besser vorstellen kannst.
Entwicklungsumgebung einrichten
Fürs erste nehmen wir der Einfachheit halber Java-8 für die JavaFX-Entwicklung. D.h. aus meiner
Sicht, wir benötigen Java-8 für das Projekt, und Java-11 für eine aktuelle NetBeans Version. Und
natürlich NetBeans selber. Damit wir hier den Überblick behalten, zeige ich hier auch meine
Verzeichnisstruktur, die ich für dieses Tutorial so aufbaue:
ruediger@ruediger-mate:~$ mkdir Tutorial
ruediger@ruediger-mate:~$ cd Tutorial/
ruediger@ruediger-mate:~/Tutorial$ mkdir Downloads Entwicklung etc opt nb-userdir nb-cachedir
ruediger@ruediger-mate:~/Tutorial$ ls
Downloads Entwicklung etc nb-cachedir nb-userdir opt
Im Ordner "Entwicklung" werden wir unser Projekt platzieren, "etc" dient als Ort für Scripte und
"opt" wird unsere Entwicklungsumgebung aufnehmen. "Downloads" ist selbsterklärend. Die
"nb-"-Verzeichnisse dienen dazu, keine Kollision mit einer bestehenden NetBeans installation zu
verursachen.
Dann lass uns als erstes die benötigten Komponenten herunterladen:
cd Downloads
wget https://javafx.valaquenta.de/jdk-8u202-linux-x64.tar.gz
wget https://javafx.valaquenta.de/openjdk-11-28_linux-x64_bin.tar.gz
wget https://javafx.valaquenta.de/netbeans-16-bin.zip
cd ..
Wir verwenden hier Java-8 von Oracle im Patch 202, da bis dahin die Lizenz für Java noch sehr frei war.
Nach der 202 hat Oracle die Lizenzbedingungen deutlich geändert, weshalb wir für das Java-11 auch auf
OpenJdk gehen. Wenn du auf die Lizenzbedingungen von Oracle keinen Wert legst, kannst du auch den
aktuellen Java-8 Patch verwenden:
cd Downloads
wget https://javafx.valaquenta.de/jdk-8u341-linux-x64.tar.gz
cd ..
Nun packen wir die Sachen aus:
cd opt
tar xzvf ../Downloads/jdk-8u202-linux-x64.tar.gz
ln -s jdk1.8.0_202/ java8
tar xzvf ../Downloads/openjdk-11-28_linux-x64_bin.tar.gz
ln -s jdk-11/ java11
unzip ../Downloads/netbeans-16-bin.zip
mv netbeans/ netbeans-16
ln -s netbeans-16/ netbeans
cd ..
Die Verlinkungen haben den Sinn, dass man Komponenten schnell durch eine aktuellere Version austauschen
kann. Da wir hier nichts installieren, ist es das einfachste, wir bauen uns für einzelne Aufgaben die
passenden Scripte. Z.B. für das Starten von NetBeans. Dazu legen wir im Ordner "etc" das Script
"startNB.sh" an:
#!/bin/bash
export JAVA_HOME=~/Tutorial/opt/java11
export NETBEANS_HOME=~/Tutorial/opt/netbeans
export NETBEANS_USERDIR=~/Tutorial/nb-userdir
export NETBEANS_CACHEDIR=~/Tutorial/nb-cachedir
$NETBEANS_HOME/bin/netbeans --jdkhome $JAVA_HOME --userdir $NETBEANS_USERDIR --cachedir $NETBEANS_CACHEDIR
Jetzt machen wir das Script noch ausführbar, und starten es einfach mal. NetBeans in der Version 16
sollte auf dem Bildschirm erscheinen.
cd etc
chmod +x startNB.sh
./startNB.sh
Klasse! Jetzt brauchen wir nur noch 2 Sachen. Java-8 als Platform im NetBeans, damit wir auch ein Java-8
Projekt machen können, und natürliche Maven, aber das ist einfach. Erst müssen wir dem NetBeans sagen,
dass es die Java-PlugIns aktivieren soll. Dazu legen wir ein neues "Java with Ant" Projekt an. Klickt
man nun auf "Next", erkennt NetBeans, dass es noch Module aktivieren muss. Wenn dann das nächste Fenster
erscheint, können wir auf "Cancel" gehen. Wir müssen kein Projekt anlegen, aber NetBeans hat die
Java-PlugIns geladen. Dies ist nur beim ersten Start von NetBeans nötig, da sonst die Menüeinträge unter
"Tools" fehler. Im NetBeans gehen wir nun auf das Menü "Tools". Darunter gibt es den Menüeintrag
"Java Platforms". Da klicken wir mal drauf.
Dann sollte dieser Dialog erscheinen. Ist dort noch kein Java-8 vorhanden (links in der Liste), so fügen
wir einfach eine Platform hinzu: Klick auf "Add Platform...". Wählen dann "Java Standard Edition"
und klicken auf "Next". Wählen dort unseren Java-8-Link und klicken auf "Finish".
Nach dem Klick auf "Finish" sollten links in der Liste zwei Platformen stehen JDK 1.8 und JDK 11
(default). Nun können wir den Dialog schließen.
Super. So, jetzt brauchen wir nur noch das Maven. Simple as possible:
sudo apt-get install maven