web-dev-qa-db-fra.com

ne peut pas résoudre le symbole javafx.application dans IntelliJ Idea IDE

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.

39
rob111

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.

68
Ryan J

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.

20
Himel Rana

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.

12
patterkyle

Vous pouvez utiliser celui fourni avec IntelliJ: <intellij>/jre64/lib/ext/jfxrt.jar.

11
Rok Strniša

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.

2
Raphael S

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)

1
user10899964

Exemple d'application Java:

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

  • Ouvre une fenêtre JavaFX avec le titre "Hello World!"
  • Capable de créer un fichier Zip de distribution exécutable (Windows à tester)
  • Capable d'ouvrir et de fonctionner dans IntelliJ sans configuration supplémentaire
  • Capable de courir de la ligne de commande

J'espère que quelqu'un trouvera le projet Github utile.

Instructions pour le cas Scala :

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.

0
Peter Lamberg