Maison >Java >javaDidacticiel >Comment réparer les erreurs du module d'application multimédia JavaFX dans Java 9 ?

Comment réparer les erreurs du module d'application multimédia JavaFX dans Java 9 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-12 14:00:16901parcourir

How to Fix JavaFX Media Application Module Errors in Java 9 ?

Erreur de module lors de l'exécution de l'application multimédia JavaFx

Lors de la tentative d'exécution d'une application JavaFX 11, le message d'erreur suivant apparaît :

Exception in thread "JavaFX Application Thread" java.lang.IllegalAccessError: class com.sun.media.jfxmediaimpl.NativeMediaManager (in unnamed module @0x4d7be377) cannot access class com.sun.glass.utils.NativeLibLoader (in module javafx.graphics) because module javafx.graphics does not export com.sun.glass.utils to unnamed module @0x4d7be377

Cette erreur provient d'un changement dans le système de modules Java introduit dans Java 9. JavaFX, qui faisait auparavant partie de Java environnement d'exécution, est désormais distribué sous forme d'un ensemble de modules.

Pour résoudre ce problème, assurez-vous que le module javafx.media est correctement résolu. Ceci peut être réalisé en :

  • Ajout de javafx.media à --add-modules : Spécifiez --add-modules javafx.controls,javafx.graphics,javafx.media lorsque lancement de l'application.
  • Rendre votre code modulaire : Créer un module descripteur (module-info.java) et spécifiez nécessite javafx.controls ; et nécessite javafx.media;.
  • Utilisation d'un JDK incluant JavaFX : Certaines distributions JDK, telles que BellSoft Liberica ou Azul Zulu, incluent des modules OpenJFX.

Si vous choisissez d'utiliser la troisième approche, notez que la classe principale ne doit pas étendre Application et qu'une classe de lancement distincte doit être créée pour initialiser JavaFX.

De plus, il est important de s'assurer que les dépendances JavaFX ne sont pas placées sur le chemin de classe, car cela peut entraîner des problèmes de résolution de module. Au lieu de cela, incluez-les dans le chemin du module ou utilisez une approche modularisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn