72
votes

Erreur: Java: version cible non valide: 11 - IntelliJ IDEA

J'essaie de créer une application qui a été construite en utilisant java 8, maintenant elle est mise à niveau vers java 11. J'ai installé Java 11 en utilisant un article oracle dans ma machine Windows et j'utilise IntelliJ IDEA 2017 comme IDE.

J'ai changé mes variables d'environnement système et défini le

Information:java: Errors occurred while compiling module 'test-domain_main'
Information: javac 1.8.0_171 was used to compile java sources
Information:1/10/2019 4:21 PM - Compilation completed with 1 error and 0 warnings in 1s 199ms
Error:java: invalid target release: 11

Et ajouté cela à la variable Path .

C:\>java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) 

Lorsque je crée mon application dans IntelliJ, voici ce que j'obtiens:

JAVA_HOME to C:\Program Files\Java\jdk-11.0.1

C'est ce que j'ai essayé jusqu'à présent:

  1. J'ai changé les valeurs cibles .idea/compiler.xml de 8 à 11 mais cela n'a pas aidé. En outre, vérifié la Target bytecode version dans les settings > Build, Execution, Deployment > Compiler > Java Compiler et tous mes modules sont définis sur 11.

  2. Je suis allé au file > Project Structure > SDKs *(currently I have 1.7 and 1.7 listed)* > Add new SDK > JDK > Après cela, j'ai sélectionné C:\Program Files\Java\jdk-11.0.1 Mais il erreurs avec " Le répertoire sélectionné n'est pas un domicile valide pour JDK "

Je ne sais pas si j'ai installé le mauvais JDK 11, car dans mon C:\Program Files\Java\ , je vois des dossiers JDK et JRE séparés pour 1.7 et 1.8 mais uniquement le dossier JDK pour 11.0.1

Ou est-ce quelque chose d'autre que je dois changer?


2 commentaires

Je suppose que la version 2017 d'intellij ne prend pas en charge jdk11 (ou peut-être qu'elle a besoin d'un plugin pour fonctionner), vous pouvez essayer de mettre à jour vers 2018.


Merci @JornVernee sur la base de vos conseils, j'ai mis à jour et résolu le problème. Java 11 fonctionne correctement avec la version IntelliJ IDEA 2018.3.3.


20 Réponses :


21
votes

Veuillez mettre à jour vers IntelliJ IDEA 2018.x pour obtenir la prise en charge de Java 11. Votre version d'IntelliJ IDEA a été publiée avant Java 11 et ne prend pas en charge cette version Java.


2 commentaires

Même la version 2020 a le même problème. Ce n'est donc pas une réponse correcte ou partiellement correcte. Vous devez changer la version SDK de la structure du projet.


@Zafar c'était la bonne réponse à la question initiale et le PO l'a acceptée. Mais il peut y avoir plusieurs causes à cette erreur qui ne peuvent pas être couvertes par une seule réponse.



43
votes
  • J'ai les mêmes messages d'information et message d'erreur aujourd'hui, mais j'ai récemment mis à jour Idea -> 2018.3.3, construit le 9 janvier 2019.
  • Pour résoudre ce problème, j'ai changé Fichier-> Structure du projet-> Modules - >> Niveau de langue à 10.

  • Et vérifiez Fichier -> Paramètres -> Construction, Exécution, Déploiement -> Compilateur -> Compilateur Java - >> Versions du bytecode du projet et du bytecode par module . J'en ai 11 là-bas.

  • Maintenant, je ne reçois pas ces notifications et l'erreur.

    Cela pourrait être utile pour quelqu'un comme moi, ayant l'idée la plus récente et obtenant la même erreur.


2 commentaires

Cela a fonctionné pour moi même si la date IntelliJ est plus ancienne que la date de sortie de Java. Fichier => Structure du projet => Projet => SDK du projet. Ajout du JDK nouvellement téléchargé sous New et appuyez sur Apply => OK Le projet a commencé la compilation immédiatement après.


Cette autre solution similaire / éventuellement nécessaire est décrite plus en détail (avec des captures d'écran) sur stackoverflow.com/a/26009627/1357094



122
votes

J'ai le même problème que celui déclaré par Grigoriy Yuschenko. Même Intellij 2018 3.3

J'ai pu démarrer mon projet en définissant (comme indiqué par Grigoriy)

File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> 8 also there

ET

File->Project Structure->Modules ->> Language level to 8 ( my maven project was set to 1.8 java)

J'espère que ce serait utile


3 commentaires

Cette autre solution similaire / éventuellement nécessaire est décrite plus en détail (avec des captures d'écran) sur stackoverflow.com/a/26009627/1357094


Exactement ce dont j'avais besoin. Merci!


Pour tous ceux qui ne peuvent pas trouver. File -> Settings Je l'ai trouvé dans IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Compiler -> Java Compiler



6
votes

J'ai eu cette même erreur après la mise à jour de mon idée et je l'ai résolue comme suit:

Fichier >> Structure du projet ... >> Projet

«Niveau de langue du projet:» a été défini sur «11 - Syntaxe de la variable locale pour les paramètres lambda», donc je l'ai changé en «SDK par défaut (8 - Lambdas, annotations de type, etc.)», puis j'ai appliqué le changement et l'erreur a été résolue.


0 commentaires

1
votes

J'ai juste eu la même erreur. Le problème était que j'avais package-info.java file vide. Dès que j'ai ajouté le nom du paquet à l'intérieur, cela a fonctionné ...


0 commentaires

3
votes

Je pourrais dire que j'ai eu un problème similaire. Mon cas: je suis passé de la nouvelle version à l'ancienne version du projet dans l'espace de travail, essayez d'exécuter un seul junit qui nécessite une recompilation, une erreur de recompilation a été générée avec une cible invalide.

À partir des paramètres de projets (F4) dans IntelliJ, tout avait l'air bien et java était réglé sur 1.7. Mais lorsque j'essaye de recompiler à partir de l'IDE, une erreur a été lancée en raison d'un niveau cible incorrect. Après vérification, j'ai trouvé que dans l'un des fichiers iml, la langue était définie sur JDK_11. Après le passage manuel à JDK_1_7, tout revient à la normale.

Il vaut la peine de vérifier manuellement le niveau de langue dans les fichiers * iml créés par IDE.


2 commentaires

Je peux ajouter cette bonne option pour vérifier également l'option comme dans les commentaires ci-dessus: File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler et vérifier si le code cible est défini correctement.


Cela continue à revenir aux paramètres précédents. Y a-t-il une solution permanente pour cela? Cette configuration peut-elle être collée au projet? (S'il existe plusieurs projets avec plusieurs versions de Java, comment le gérer dans le code)



23
votes

Si la construction d'un projet via un système de construction (Maven, Gradle, etc.) fonctionne mais qu'IntelliJ affiche une erreur de Invalid target release , procédez comme suit,

  1. Fermer IntelliJ

  2. Accédez au répertoire du projet

  3. Supprimer le répertoire .idea /

  4. Démarrez IntelliJ avec le répertoire du projet

Cela recréera le répertoire .idea / et n'affichera plus l'erreur.

REMARQUE: tous les paramètres IntelliJ spécifiques au référentiel que vous avez ajoutés seront supprimés lorsque le répertoire .idea / est supprimé et ils seront recréés avec les valeurs par défaut.


2 commentaires

La suppression du dossier ./idea n'est-elle pas un peu trop dure? Tous vos paramètres auront disparu.


Oui, je suis d'accord que c'est un peu dur. Tous les paramètres spécifiques au référentiel auraient disparu, mais les paramètres globaux comme un keymap personnalisé seraient conservés puisqu'ils sont stockés dans le répertoire personnel de l'utilisateur. Mise à jour de la réponse avec une note.



2
votes

Pour moi, j'avais le même problème mais c'était avec java v8 , j'utilise une version différente de java sur ma machine pour mes différents projets. Lors de l'importation d'un de mes projets, j'ai eu le même problème. Pour vérifier la configuration, j'ai vérifié tous mes paramètres liés au SDK, que ce soit dans File->Project->Project Structure / Modules ou dans le paramètre de configuration Exécuter / Déboguer. Tout ce que j'ai réglé sur java-8 mais je recevais toujours le même problème. En vérifiant tous les fichiers de configuration, j'ai trouvé que compiler.xml dans .idea avait une entrée pour le bytecodeTargetLevel qui était défini sur 11. Ici, si je le change en 8 même s'il affiche la même sortie du compilateur et en supprimant <bytecodeTargetLevel target="11" /> de compiler.xml résout le problème.


0 commentaires

6
votes

Il est également possible que Maven utilise une version différente de JDK, dans ce cas, vous pouvez configurer Maven pour utiliser la version JDK par défaut du projet.

entrez la description de l'image ici


0 commentaires

2
votes

Mon module de projet était défini sur 8 mais le pom.xml était défini sur 11. Lorsque je suis passé de 8 à 11 dans le module, cela fonctionnait.


0 commentaires

4
votes

J'ai eu le problème car je mets actuellement à niveau ma base de code vers JDK 11 et je passe entre 8 et 11 dans les branches. Il semble qu'IntelliJ n'aime pas ça.

Solution:

Si vous avez sélectionné le JDK actuel dans la structure de votre projet ( Ctrl+Shift+Alt+S ) et que vous obtenez toujours l'erreur, invalidez votre cache File > Invalidate Caches / Restart...

Après le redémarrage de l'IDE, l'erreur a disparu dans mon cas.


0 commentaires

1
votes

J'ai également eu la même erreur, je viens de changer la version java dans pom.xml de 11 à 1.8 et cela fonctionne bien.


0 commentaires

1
votes

J'ai également eu une erreur similaire mais dans mon cas, c'était Erreur: java: version source invalide: 11 ... Je viens donc de changer toutes les annotations de java 11 en java 8 et même si l'annotation était java 8, je l'ai juste quittée comme ça. J'espère que cela vous aidera à résoudre le problème.


0 commentaires

5
votes

Si vous êtes dans Springboot, veuillez vérifier la version java dans le fichier pom.xml

<properties>
   <java.version>11</java.version>
</properties>

Si cette version ne correspond pas à votre version par défaut (Java) de l'ordinateur, cette erreur peut se produire.


0 commentaires

0
votes

J'ai changé de fichier -> structure du projet -> paramètres du projet -> modules Dans l'onglet source, j'ai défini le niveau de langue de: 14, ou 11, à: "Projet par défaut". Cela a résolu mon problème.


0 commentaires

1
votes

Dans votre fichier pom.xml à l'intérieur de ce <java.version>, écrivez "8" à la place, écrivez "11", et RECOMPILEZ votre fichier pom.xml Et tadaaaaaa ça marche!


0 commentaires

0
votes

J'ai essayé tout ce qui précède et j'ai trouvé cette sauce secrète

  1. assurez-vous que pom.xml spécifie votre jdk souhaité.
  2. assurez-vous que maven spécifie votre jdk souhaité.
  3. assurez-vous que Projects spécifie votre jdk souhaité.
  4. assurez-vous que Modules spécifie votre entier jdk ET que Dependencies spécifie votre jdk. hth.

0 commentaires

0
votes

J'ai ajouté ces deux lignes au fichier build.gradle

compileJava.options.fork = true
                                              
compileJava.options.forkOptions.executable = 'C:\\Program Files\\Java\\jdk-11.0.8'

et il fonctionne

J'utilise Windows et mon projet basé sur gradle

mon chemin jdk -> 'C: \ Program Files \ Java \ jdk-11.0.8'

veuillez fournir votre chemin jdk


0 commentaires

3
votes

J'étais récemment confronté au même problème. Cette erreur s'affichait sur mon écran après l'exécution du fichier principal de mon projet. Erreur: java: version source non valide: 11 Suivez les étapes pour résoudre cette erreur

  1. Fichier-> Structure du projet -> Projet
  2. Cliquez sur le bouton Nouveau sous Project SDK: ajoutez le dernier SDK et cliquez sur OK.

entrez la description de l'image ici

Après l'exécution, vous verrez que l'erreur est résolue.

entrez la description de l'image ici

entrez la description de l'image ici

Vous pouvez voir que cela fonctionne parfaitement. Veuillez m'approcher si vous trouvez un problème


0 commentaires

7
votes

Les changements ci-dessous ont fonctionné pour moi et j'espère que les mêmes fonctionnent pour vous.

  1. Changer la version de Java de 11 à 8 dans le fichier pom.xml
    <java.version> 1.8 </java.version>

  2. Allez dans, Fichier -> Paramètres -> Construire, Exécution, Déploiement -> Compilateur -> Compilateur Java
    Ici, dans la colonne Module , vous pouvez voir votre projet répertorié et dans la colonne Version de bytecode cible , la version Java du projet est déjà spécifiée (principalement 11), changez-la en 8

  3. Allez dans, Fichier -> Structure du projet -> Modules. Ici, dans l'onglet Source , vous pouvez voir l'option Niveau de langue , choisissez 8 - Lambdas, tapez les annotations, etc. Enfin, choisissez Appliquer et OK, vous êtes prêt à partir.


0 commentaires