Die Fehlermeldung bedeutet einfach, dass die Abhängigkeit beim Ausführen nicht vorhanden ist. Du musst beim Ausführen auch dafür sorgen, dass alle Abhängigkeiten auf dem Classpath zur Verfügung stehen.
Ab Java 9 ist die offizielle Methode aber JLink (und ab Java 14 auch JPackage) wodurch ein sogenanntes Image gebaut wird, das alles enthält, das notwendig ist.
Ich selbst würde dazu immer ein Buildtool wie Maven oder Gradle verwenden. Unter openjfx.io findet sich unter Documentation ein Getting Started, das hier viele Wege genau beschreibt.
Ich selbst bevorzuge aber einen anderen Aufbau ohne das Maven Plugin, welches da gezeigt wird. Meine Lösung findet sich z.B. unter
Simple JavaFX App with Maven. Contribute to kneitzel/JavaFXMavenApp development by creating an account on GitHub.
github.com
Das wäre ein Maven Projekt, das man direkt nehmen kann um mit seiner Applikation zu starten. Da sind am Anfang zwar auch viele Dinge, die einen Anfänger nicht sofort interessieren, aber mit denen man sich immer beschäftigen sollte, wenn man eine Applikation weiter geben möchte.
Das Maven Projekt ist derzeit ausgelegt auf Java 17 und umfasst:
- JavaFX Abhängigkeiten, module-info.java
- Dependency Plugin / Moditect um ein Image zu bauen
- JPackage Plugin um aus ein App Image mit exe zu bauen
- JUnit / Surfire Plugin, damit Unit Tests ausgeführt werden
- Statische Codeanalyse: PMD / Spotbugs
- Check der Abhängigkeiten ob neue Versionen vorhanden sind.
Ich habe jetzt in meinem Urlaub auch vor, das noch mit YouTube Videos vorzustellen. Ich hoffe, dass ich dazu auch wirklich noch die Zeit finden werde, da halt auch Arbeiten am Haus durchgeführt werden. Aber das wäre aus meiner Sicht ein guter Start.
Der Start könnte so aussehen:
a) Bei GitHub einfach ein ZIP herunter laden und entpacken
b) den Anfang der POM ansehen um da groupId, artefactId, Version, ... anzupassen.
c) Dann kann man da seinen Code einfügen / einbauen.
Ein (neu) Übersetzen wäre dann einfach ein
mvnw clean package
um dann im target Verzeichnis in jpackage das Image zu haben, das man weitergeben kann.