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:
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.
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?
20 Réponses :
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.
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.
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.
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
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
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
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.
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é ...
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.
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)
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,
Fermer IntelliJ
Accédez au répertoire du projet
Supprimer le répertoire .idea /
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!
J'ai essayé tout ce qui précède et j'ai trouvé cette sauce secrète
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
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
Après l'exécution, vous verrez que l'erreur est résolue.
Vous pouvez voir que cela fonctionne parfaitement. Veuillez m'approcher si vous trouvez un problème
Les changements ci-dessous ont fonctionné pour moi et j'espère que les mêmes fonctionnent pour vous.
Changer la version de Java de 11 à 8 dans le fichier pom.xml
<java.version> 1.8 </java.version>
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
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.
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.