web-dev-qa-db-fra.com

Comment exécuter l'exemple d'application ControlsFX avec Java 11 et JavaFX 11

Le site web de ControlsFX dit:

Si vous voulez jouer avec l'exemple d'application ControlsFX, simplement téléchargez la version de ControlsFX et exécutez la commande suivante sur le fichier Invite de commande (assurez-vous de remplacer le * par la version actuelle nombre d'échantillons FXSampler et ControlsFX):

Java -jar controlsfx-samples-*.jar

J'ai téléchargé ControlsFX 9.0.0 , qui est censé être destiné aux utilisateurs de Java 9 et versions ultérieures.

Quand je lance Java -jar controlsfx-samples-9.0.0.jar je reçois

Erreur: impossible de trouver ou de charger la classe principale fxsampler.FXSampler
Causée par: Java.lang.NoClassDefFoundError: javafx/application/Application

Mais ce n’est pas grave, selon Exécutez HelloWorld à l’aide du guide JavaFX 11 , je dois ajouter des modules.

Alors j'essaie Java --module-path "C:\Program Files\Java\javafx-sdk-11\lib" --add-modules=javafx.controls -jar controlsfx-samples-9.0.0.jar et je reçois

Classe d'application JavaFX manquante fxsampler.FXSampler

J'exécute toutes les commandes du répertoire controlsfx-9.0.0 qui contient controlsfx-9.0.0.jar, controlsfx-samples-9.0.0.jar et fxsampler-1.0.10.jar.

La sortie de Java -version est pour moi:

openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1 + 13)
Serveur OpenJDK 64 bits VM 18.9 (version 11.0.1 + 13, mode mixte)

Tous les commentaires et suggestions sont appréciés.
Merci d'avance.

MODIFIER:
Après avoir suivi le conseil de Slaw et avoir exécuté Java --module-path "C:\Program Files\Java\javafx-sdk-11\lib" --add-modules=javafx.controls,javafx.fxml,javafx.web -jar controlsfx-samples-9.0.0.jar je reçois

Initialising FXSampler sample scanner...
        Discovering projects...
                Found project 'ControlsFX', with sample base package 'org.controlsfx.samples'
Exception in Application start method
Java.lang.reflect.InvocationTargetException
        at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
        at Java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
        at Java.base/Java.lang.reflect.Method.invoke(Method.Java:566)
        at javafx.graphics/com.Sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.Java:464)
        at javafx.graphics/com.Sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.Java:363)
        at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
        at Java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
        at Java.base/Java.lang.reflect.Method.invoke(Method.Java:566)
        at Java.base/Sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.Java:1051)
Caused by: Java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.Sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.Java:900)
        at javafx.graphics/com.Sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.Java:195)
        at Java.base/Java.lang.Thread.run(Thread.Java:834)
Caused by: Java.lang.NoClassDefFoundError: Could not initialize class impl.org.controlsfx.version.VersionChecker
        at org.controlsfx.control.ControlsFXControl.(ControlsFXControl.Java:35)
        at org.controlsfx.control.WorldMapView.(WorldMapView.Java:93)
        at org.controlsfx.samples.HelloWorldMapView.(HelloWorldMapView.Java:55)
        at Java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at Java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
        at Java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
        at Java.base/Java.lang.reflect.Constructor.newInstance(Constructor.Java:490)
        at Java.base/Java.lang.Class.newInstance(Class.Java:584)
        at fxsampler.util.SampleScanner.discoverSamples(SampleScanner.Java:86)
        at fxsampler.FXSampler.start(FXSampler.Java:106)
        at javafx.graphics/com.Sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.Java:846)
        at javafx.graphics/com.Sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.Java:455)
        at javafx.graphics/com.Sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.Java:428)
        at Java.base/Java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.Sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.Java:427)
        at javafx.graphics/com.Sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.Java:96)
        at javafx.graphics/com.Sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at javafx.graphics/com.Sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.Java:174)
        ... 1 more
Exception running application fxsampler.FXSampler
3
DfM

Fixé dans PR # 720 . Donc, les nouveaux artefacts Maven incorporeront le correctif.

L’historique complet des numéros peut être vu ici .

0
DfM