IntelliJ IDEA - Erreur: les composants d'exécution JavaFX manquent et sont nécessaires pour exécuter cette application

abg:

Je suis en cours d' exécution IntelliJ IDEA ultime 05/02/2018 avec JDK 11.0.1 et JavaFX 11 de OpenJFX . Je sais qu'il est une erreur commune et j'ai essayé beaucoup des corrections proposées , mais rien ne fonctionne.

Peu importe quel projet JavaFX je tente d'exécuter je reçois l'erreur:

Error: JavaFX runtime components are missing, and are required to run this application

Si j'ajoute ce qui suit aux options VM

 --module-path="C:\Program Files\Java\javafx-sdk-11\lib" --add-modules=javafx.controls

Je reçois ces erreurs:

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.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x5fce9dc5) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x5fce9dc5
    at com.sun.javafx.fxml.FXMLLoaderHelper.<clinit>(FXMLLoaderHelper.java:38)
    at javafx.fxml.FXMLLoader.<clinit>(FXMLLoader.java:2056)
    at sample.Main.start(Main.java:13)
    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 sample.Main

J'ai essayé de réinstaller sans chance. J'ai aussi essayé de changer getClass().getResource(...)de getClass().getClassLoader().getResource(...)ou à quelque chose comme , Parent root = FXMLLoader.load(getClass().getResource("/sample.fxml"));mais ne fonctionne toujours pas.

José Pereda:

Il y a des questions similaires à ce ou cette autre un .

Avant JavaFX 11, chaque fois que vous appeliez quelque chose JavaFX lié, vous aviez tous les modules de JavaFX disponibles dans le SDK.

Mais maintenant, vous devez inclure les modules / dépendances ont besoin de vous.

Votre erreur indique que vous utilisez FXML mais il ne peut pas être résolu, mais vous venez d' ajouter le javafx.controlsmodule de :

--add-modules=javafx.controls

Comme vous pouvez le voir dans le JavaDoc du javafx.controlsmodule dépend de javafx.graphicset java.base, mais aucun de ces modules comprend les classes FXML.

Si vous avez besoin des cours de FXML comme le FXMLLoader, vous devez inclure le javafx.fxmlmodule:

 --module-path="C:\Program Files\Java\javafx-sdk-11\lib" \
    --add-modules=javafx.controls,javafx.fxml

Sera de même si vous avez besoin des médias ou WebKit, ceux -ci ont leurs propres modules .

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=167353&siteId=1
conseillé
Classement