web-dev-qa-db-fra.com

JavaFX n'existe pas avec Java 9 et Intellij Idea

J'utilise Intellij Idea pour compiler un projet qui utilise des dépendances Maven et Intellij me répète que mon projet contient 50 erreurs, car JavaFX n'existe pas.

Intellij ne signale pas toutes les dépendances javafx dans mon code comme des erreurs, c’est simplement que dès que j’appuie sur l’exécution et que je compile le programme, tout ce qui existe en JavaFX n’existe pas.

J'ai essayé de retélécharger le dernier JDK (Java 9.0.1) et cela n'a pas résolu le problème. Je suis allé dans la structure de projet par défaut et dans la structure de projet pour m'assurer qu'elle utilisait le bon jdk et que cela ne résolvait pas le problème. Tous les jdks que j'utilise semblent lister les paquets javafx inclus dans le projet.

C'est également un problème pour un projet particulier sur lequel je travaille avec un ami. Nous devrons peut-être transférer tout notre code dans un nouveau projet, mais je ne suis pas sûr que cela corrigera quoi que ce soit.

Aucune suggestion?

6
user3785637

Essayez de définir le niveau de langue du projet sur "9" dans "Structure du projet | Projet"

11
y.bedrov

D'accord, je vois quel était mon problème.

En plus de Try to set project language level to "9" in "Project Structure | Project" mentionné ci-dessus, j'avais un paramètre maven dans un fichier pom.xml ressemblant à ceci:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${Java.version}</source>
        <target>${Java.version}</target>
    </configuration>
</plugin>

et Java.version était défini comme 1.8 quelque part ci-dessus. Je viens juste de le changer en 9

10
Fuyang Liu

J'ai eu ce problème après la mise à niveau d'un projet JavaFX de Java 8 à Java 9.

Après avoir vérifié les paramètres de niveau de langue habituels du projet et du module dans IntelliJ et dans Maven pom, le problème venait du fait que le module était explicitement configuré pour générer du bytecode Java 8 dans les préférences du compilateur Java.

Regardez dans Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler. Vérifiez que Project bytecode version est désactivé (ou défini correctement) et que votre module ne figure pas dans Per-module bytecode version avec une valeur incorrecte.

5
ThirstyCamel
File --> Project Structure-->Module

Le niveau de langue ici défini à 5 pour moi. Je l'ai augmentée à 9 pour autoriser les classes, etc. et la même erreur que celle décrite ci-dessus a été résolue pour moi. 

0
Mark Gilmore