web-dev-qa-db-fra.com

Comment faire fonctionner JavaFX et Java 11 dans IntelliJ IDEA

Avec la récente version de Java 11, JavaFX n'est plus inclus dans le JDK. J'ai un projet JavaFX existant. Je souhaiterais savoir comment passer d'un projet Java 10 à un projet Java 11. Je suis certain d'avoir correctement installé Java 11 et de pouvoir modifier le SDK par défaut de Java 10 à Java 11. sais comment j’aurais pu faire fonctionner JavaFX avec Java 11.

J'ai téléchargé la dernière version de JavaFX ici . Je l'ai extrait dans mon dossier Java qui contient mes autres JDK, mais je ne sais vraiment pas quoi faire à ce stade. J'ai lu de longs guides décrivant comment connecter un projet à l'aide de Maven ou de Gradle, mais je ne les ai jamais utilisés. Existe-t-il un moyen d'ajouter la prise en charge de JavaFX dans les menus d'IntelliJ?

2
Jack J

Téléchargez le SDK JavaFX approprié à votre système d'exploitation et décompressez-le à l'emplacement de votre choix, par exemple/Utilisateurs/votre-utilisateur/Téléchargements/javafx-sdk-11.

  1. Créer un projet JavaFX

 enter image description here

Créer un projet JavaFX Donnez un nom au projet, par exemple, HelloFX, ainsi qu'un emplacement. À l'ouverture du projet, les classes JavaFX ne sont pas reconnues.  enter image description here

  1. Set JDK 11

Allez dans Fichier -> Structure du projet -> Projet et définissez le kit de développement logiciel du projet sur 11. Vous pouvez également définir le niveau de langue sur 11. Définir JDK 11  enter image description here

  1. Créer une bibliothèque

Allez dans Fichier -> Structure du projet -> Bibliothèques et ajoutez le SDK JavaFX 11 en tant que bibliothèque au projet. Pointez sur le dossier lib du SDK JavaFX.  enter image description here

Une fois la bibliothèque appliquée, les classes JavaFX seront reconnues par l'EDI.  enter image description here

Attention: Si vous exécutez maintenant le projet, il sera compilé mais vous obtiendrez cette erreur:

Erreur: les composants d'exécution JavaFX sont manquants et sont requis pour exécuter cette application

Cette erreur est indiquée car le programme de lancement de Java 11 vérifie si la classe principale étend javafx.application.Application. Si tel est le cas, il est nécessaire d’avoir le module javafx.graphics sur le chemin du module.

  1. Ajouter des options VM

Pour résoudre le problème, cliquez sur Exécuter -> Modifier les configurations ... et ajoutez les options VM suivantes:

--module-path% PATH_TO_FX% --add-modules = javafx.controls, javafx.fxml

Notez que le projet par défaut créé par IntelliJ utilise FXML, donc javafx.fxml est requis avec javafx.controls. Si votre projet utilise d'autres modules, vous devrez également les ajouter.  enter image description here Cliquez sur Appliquer et fermez la boîte de dialogue.

  1. Lancer le projet

Cliquez sur Exécuter -> Exécuter ... pour exécuter le projet. Il devrait maintenant fonctionner correctement.

2
liuyez123