J'utilise Eclipse kepler avec Java SE 1.8 bibliothèque système jdk mais quand j'utilise des classes ou des méthodes javafx, Eclipse donne un avertissement comme Access restriction: The type 'TableColumn<?,?>' is not API (restriction on required library 'C:\Program Files\Java\jdk1.8.0_05\jre\lib\ext\jfxrt.jar')
.
J'ai essayé d'ajouter une règle d'accès à la bibliothèque système pour autoriser l'accès à tous les fichiers de la bibliothèque à l'aide du caractère générique *
Mais l'avertissement est toujours là. Suis également en utilisant maven pour le projet de construction. Le code fonctionne mais l'avertissement persiste et affecte la lisibilité en tant que code I. Toute aide est appréciée.
Edit: j'ai également essayé d'ajouter @SuppressWarnings("restriction")
au début de mes cours, mais cela ne résout toujours pas la cause inconnue et masque tous les autres avertissements de restriction que je pourrais avoir besoin de voir
Vous pouvez choisir ignore
dans les paramètres suivants:
Windows -> Preferences -> Java -> Compiler -> Errors/Warnings
(Project) Properties -> Java Compiler -> Errors/Warnings
Utilisez le filtre pour trouver "Forbidden reference"
Forbidden reference (access rules)
: remplacez-le par "ignore
"
Le moyen le plus simple est d'installer e (fx) clipse - un plugin pour Eclipse pour prendre en charge JavaFX:
Des informations originales peuvent être trouvées ici: https://www.Eclipse.org/efxclipse/install.html#for-the-lazy
Ajoutez une règle d'accès pour autoriser l'accès à javafx/**
.
Voir aussi cette réponse: https://stackoverflow.com/a/32062263/106035
Pour tout ce que je peux dire, c'est un bug dans Eclipse à mon avis. Je n'ai pas non plus trouvé de moyen de configurer cela globalement dans Eclipse, mais vous devez le refaire pour chaque projet.
Accédez à Paramètres du projet, Chemin de génération, Bibliothèques, JRE. Cliquez sur "Règles d'accès" qui devraient avoir "Aucune règle définie" habituellement. Ajoutez une nouvelle règle: "Accessible" et entrez le modèle "javafx/**
".
Cela indique au compilateur Eclipse Java que javafx.*
est une API officielle que vous êtes autorisé à utiliser, donc l'avertissement disparaît.
Clairement, autoriser l'accès à javafx seulement est bien mieux que d'ignorer l'avertissement.
La raison pour laquelle *
n'a pas fonctionné car vous n'avez pas lu la définition du caractère générique. Dans les règles d'accès, *
ne correspond qu'une seule fois, vous avez besoin de **
pour correspondre à n'importe quelle profondeur. C'est à dire. *
permettra l'accès à javafx.SomeClass
mais pas javafx.scene.SomeClass
...
Ajoutez une règle d'accès pour javafx
.
Cliquez avec le bouton droit sur votre projet> Propriétés> Java Chemin de génération> onglet Bibliothèques, puis:
Edit...
boutonAdd...
Accessible
javafx/**
OK
OK