Maison >Java >javaDidacticiel >Pourquoi est-ce que je reçois une IllegalAccessError lors de la création d'une étiquette dans JavaFX 11 ?

Pourquoi est-ce que je reçois une IllegalAccessError lors de la création d'une étiquette dans JavaFX 11 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 22:12:021074parcourir

Why am I getting an IllegalAccessError when creating a Label in JavaFX 11?

JavaFX 11 : IllegalAccessError lors de la création de Label

JavaFX 11 a introduit des changements importants dans le framework, le séparant du JDK. Ce changement a conduit à un problème courant où les utilisateurs rencontrent une IllegalAccessError lors de la création d'une étiquette ou d'un autre contrôle.

Cause du problème

L'erreur est causée par un conflit entre les modules JavaFX et le chemin du module du projet. JavaFX 11 utilise un système modulaire, dans lequel les bibliothèques sont regroupées sous forme de modules pouvant être ajoutés à votre projet selon vos besoins. Cependant, par défaut, IntelliJ IDEA ne configure pas correctement le chemin du module pour JavaFX.

Solution

Pour résoudre ce problème, vous devez ajouter manuellement les modules JavaFX à le chemin du module de votre projet et spécifiez les modules que vous souhaitez utiliser.

  1. Ajoutez le SDK JavaFX en tant que bibliothèque :

    • Dans IntelliJ IDEA , faites un clic droit sur votre projet dans l'Explorateur de projets et sélectionnez « Ajouter un support de framework ».
    • Sélectionnez « JavaFX » dans la liste et choisissez la version appropriée (11.0.2 dans ce cas).
  2. Configurer les options de la VM :

    • Allez dans Exécuter > Modifier les configurations.
    • Dans le champ Options de la VM, ajoutez ce qui suit :

  3. Spécifiez la dépendance du module :

    • Dans le fichier pom.xml, ajoutez la dépendance suivante :

      • <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>

Notes supplémentaires

  • Remplacez "/path/to/javafx-sdk/lib" par le chemin réel vers le répertoire de la bibliothèque du SDK JavaFX.
  • Si vous devez utiliser des modules JavaFX supplémentaires, spécifiez-les dans l'argument --add-modules (par exemple, --add-modules javafx.fxml).
  • Vous pouvez confirmer que les bons modules sont utilisés en ajoutant l'indicateur --list-modules aux options de la VM.

En suivant ces étapes, vous devriez être en mesure de résoudre l'erreur IllegalAccessError. lors de la création d'une étiquette ou d'un autre contrôle dans JavaFX 11.

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