J'ai essayé de créer un JavaFX application dans IntelliJ Idea IDE mais je suis tombé sur une erreur de compilation:
Java: le package javafx.application n'existe pas.
J'ai changé le SDK de projet et le niveau de langue du projet en Java 8, j'ai rechargé le projet, mais cela n'a pas aidé. Ensuite, j'ai vérifié si le plugin JavaFX était activé dans les paramètres.
La recherche sur Google et StackOverflow ne m'a pas donné plus d'idées sur ce qui ne va pas ... Merci d'avance pour toute aide.
P.S. J'utilise IntelliJ Idea 14.0 avec Java8.1.0_25 sur un système d'exploitation archlinux.
Comme indiqué ici , JavaFX n'est plus inclus dans openjdk.
Vérifiez donc si vous avez <Java SDK root>/jre/lib/ext/jfxrt.jar
sur votre chemin de classe sous Project Structure -> SDKs -> 1.x -> Classpath
? Sinon, c'est peut-être pour ça. Essayez de l'ajouter et voyez si cela résout votre problème, par exemple. sur Ubuntu, installez le paquet openjfx avec Sudo apt-get install openjfx
.
Cela devrait être votre solution parfaite. Essayez de vous amuser ... Si une commande ne fonctionne pas correctement, cela signifie que si vous obtenez une erreur. Essayez de le résoudre vous-même. Je vous ai donné la principale chose dont vous avez besoin. si votre application est située à un emplacement différent, ou que l'architecture de votre système est différente. Résous-le toi-même. Très facile à faire. Suivez juste ma solution donnée.
Étape 0:
Sudo apt-get install openjdk-8-jre
Étape 1
Sudo apt-get install openjfx
Étape 2:
Sudo cp /usr/share/Java/openjfx/jre/lib/ext/* /usr/lib/jvm/Java-1.8.0-openjdk-AMD64/lib
Étape 3:
Sudo cp /usr/share/Java/openjfx/lib/* /usr/lib/jvm/Java-1.8.0-openjdk-AMD64/lib
Étape 4:
Sudo chmod 777 -R /usr/lib/jvm/Java-1.8.0-openjdk-AMD64
maintenant, ouvrez un nouveau projet ou reconstruisez votre projet . Bonne chance.
Vous devez télécharger le package Java-openjfx à partir du dépôt officiel d'Arch Linux. (Assurez-vous aussi que vous avez le paquet openjdk8-openjdk). Après cela, ouvrez votre projet dans Intellij et allez dans Structure de projet -> SDK -> 1.8 -> Classpath et essayez de supprimer votre ancien JDK et de cliquer sur le répertoire du nouveau JDK qui contiendra désormais jfxrt.jar.
Vous pouvez utiliser celui fourni avec IntelliJ: <intellij>/jre64/lib/ext/jfxrt.jar
.
Vous pouvez avoir un niveau de langue de projet inférieur à celui de votre JDK.
Vérifiez si: "Structure/projet/projet-> niveau de langue du projet" est inférieur à votre JDK . J'ai eu le même problème avec JDK 9 et le niveau de langue était défini par défaut à 6.
J'ai réglé le niveau de langue du projet sur 9 et tout a bien fonctionné par la suite.
Vous pourriez avoir le même problème.
Une autre façon de résoudre le problème: Cliquez avec le bouton gauche de la souris sur le dossier du projet dans la structure de projet à gauche, puis cliquez sur "Ouvrir les paramètres du module" dans la liste des actionsDans la nouvelle fenêtre, cliquez sur SDK qui se trouvent sous le titre de menu "Paramètres de plate-forme" Puis vérifiez dans la liste "Classpath" si vous pouvez trouver le chemin du plug-in jfxrt. Sinon, cliquez sur le symbole + à droite et sélectionnez le répertoire du plugin jfxrt (C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jfxrt.jar sur mon bureau)
Je répète ma réponse à partir d'une autre question ici, car elle est liée et semble également résoudre le problème de la question.
Voici mon exemple de projet avec OpenJDK 12, JavaFX 12 et Gradle 5.4
J'espère que quelqu'un trouvera le projet Github utile.
De plus, les instructions ci-dessous fonctionnent avec le plugin Gradle Scala , mais ne semblent pas fonctionner avec Java . Je laisse cela ici au cas où quelqu'un d'autre utilise également Scala, Gradle et JavaFX.
1) Comme mentionné dans la question, le plugin JavaFX Gradle doit être configuré. Open JavaFX a une documentation détaillée à ce sujet
2) De plus, vous avez besoin du le SDK JavaFX de votre plate-forme décompressé quelque part. REMARQUE: Assurez-vous de faire défiler la liste jusqu'à la section Dernières versions où JavaFX 12 . est (LTS 11 est le premier pour une raison quelconque.)
3) Ensuite, dans IntelliJ, vous accédez au File -> Project Structure -> Libraries
, appuyez sur le bouton et ajoutez le dossier lib
à partir du SDK JavaFX non compressé.
Pour des instructions plus longues avec des captures d'écran, consultez l'excellent Open JavaFX docs for IntelliJ Je ne parviens pas à faire fonctionner un lien profond, sélectionnez donc JavaFX and IntelliJ
puis Modular from IDE
dans le navigateur de documents. . Ensuite, faites défiler jusqu'à l'étape 3. Create a library
. Pensez également à vérifier les autres étapes si vous rencontrez des problèmes.
Il est difficile de dire si la situation est exactement la même que dans la question initiale, mais cela ressemblait suffisamment pour que je me suis retrouvé ici. J'ajoute donc mon expérience ici pour aider les autres.