Maison >Java >javaDidacticiel >Comment résoudre les erreurs du module multimédia JavaFX lors de l'exécution d'une application JavaFX 11 ?

Comment résoudre les erreurs du module multimédia JavaFX lors de l'exécution d'une application JavaFX 11 ?

DDD
DDDoriginal
2024-12-20 17:49:12563parcourir

How to Resolve JavaFX Media Module Errors When Running a JavaFX 11 Application?

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

Problème :

Lors de l'exécution d'une application JavaFX 11 avec la commande fournie dans la question, une erreur est rencontrée liée à un accès illégal entre les classes dans javafx.media et javafx.graphics modules.

Solution :

Pour résoudre l'erreur et exécuter l'application avec succès, assurez-vous que le module javafx.media est résolu en tant que module nommé lors du lancement de l'application. Cela peut être accompli par l'une des méthodes suivantes :

1. Incluez le module dans l'argument --add-modules :

Modifiez la commande pour inclure javafx.media comme module supplémentaire dans l'argument --add-modules :

/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
-p ~/.m2/repository/org/openjfx/javafx-swing/11/javafx-swing-11.jar:
~/.m2/repository/org/openjfx/javafx-swing/11/javafx-swing-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-graphics/11/javafx-graphics-11.jar:
~/.m2/repository/org/openjfx/javafx-graphics/11/javafx-graphics-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-base/11/javafx-base-11.jar:
~/.m2/repository/org/openjfx/javafx-base/11/javafx-base-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11.jar:
~/.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-media/11/javafx-media-11.jar:
~/.m2/repository/org/openjfx/javafx-media/11/javafx-media-11-linux.jar 
--add-modules javafx.controls,**javafx.media**
-classpath ...

2. Créez votre propre code modulaire :

Créez un fichier module-info.java dans le répertoire de votre projet avec le contenu suivant :

module my.application {
    requires javafx.controls;
    requires javafx.media;

    // Replace with your Application class' package
    exports com.example.myapp to javafx.graphics;
}

Ensuite, lancez votre application avec l'argument --module pour spécifier votre module personnalisé :

/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
--module my.application
--add-modules javafx.base,javafx.graphics,javafx.controls
-classpath ...

3. Utilisez un JDK incluant JavaFX :

Téléchargez un JDK incluant JavaFX, tel que BellSoft Liberica ou Azul Zulu, et utilisez-le pour exécuter votre application.

Remarques supplémentaires :

  • Il est recommandé d'éviter de placer à la fois les fichiers JAR JavaFX et les modules JavaFX sur le chemin de classe simultanément. Cela peut conduire à l'erreur décrite dans la question.
  • Si vous rencontrez des erreurs de compilation liées à des symboles manquants après le passage au code modulaire, assurez-vous que le dernier kit de développement Java (JDK) est installé.
  • Référez-vous à la documentation JavaFX pour plus d'informations sur la modularité et le système de modules Java Platform : https://openjfx.io/javadoc/11/javadoc/index.html

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