java.lang.NoClassDefFoundError: javafx/application/Application : les classes de JavaFX ne sont pas trouvées par le Java qui est invoqué sur la ligne de commande. Peut-être un soucis de CLASSPATH, MODULEPATH ou le besoin de lister les modules utilisés par une app non-modulaire lors d'un lancement sur la ligne de commande ?
Ceci dit, dans mon cas, j'ai repris le projet NetBeans créé tantôt pour générer un JAR de test, et j'ai aucun soucis pour le lancer avec la ligne de commande sans autre paramètre que -jar <nom du fichier jar>. Par contre j'ai bien pris soin d’être sur que c'est le java de Zulu qui est celui utilise et non pas le JDK de l'OpenJDK (sans JavaFX intégré), qui est défini comme mon JDK par défaut dans mes variables systèmes.
Avant (trouve pas JavaFX ce qui est normal*) :
1 2 3 4 5 6 7 8
| >java --version
openjdk 23 2024-09-17
OpenJDK Runtime Environment (build 23+37-2369)
OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)
>java -jar nb23_test_fx.jar
Error: Could not find or load main class javafxapplication1.JavaFXApplication1
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application |
Apres (lancement OK) :
1 2 3 4 5 6 7 8
| >set PATH="C:\Program Files\Java\zulu23.30.13-ca-fx-jdk23.0.1-win_x64\bin";%PATH%
>java --version
openjdk 23.0.1 2024-10-15
OpenJDK Runtime Environment Zulu23.30+13-CA (build 23.0.1+11)
OpenJDK 64-Bit Server VM Zulu23.30+13-CA (build 23.0.1+11, mixed mode, sharing)
>java -jar nb23_test_fx.jar |
(*) Et cela se corrige dans mon cas, en lancant avec :
java --module-path="<chemin du SDK JavaFX de Gluon>\lib" --add-modules=javafx.graphics,javafx.controls -jar nb23_test_fx.jar
Partager