Erreur: java: version source non valide: 8 dans Intellij. Qu'est-ce que ça veut dire?

342

Im essayant de compiler du code dans J'utilise Intellij Ultimate 13.1.4, mais j'obtiens l'erreur suivante et je n'ai aucune idée de ce que cela signifie:

Information:Using javac 1.7.0_55 to compile java sources
Information:java: Errors occurred while compiling module 'Example'
Information:Compilation completed with 1 error and 0 warnings in 3 sec
Information:1 error
Information:0 warnings
Error:java: invalid source release: 8

Je suppose que c'est quelque chose lié à Java 8 vs Java 7, mais je n'ai aucune idée de quoi spécifiquement. J'ai essayé de rechercher ce message sur Google, mais ils parlent de javacou target release, donc cela ne semble pas exactement s'appliquer.

David dit de réintégrer Monica
la source
2
Quelle version de Java est installée? À quel JRE / JDK avez-vous pointé Intellij dans les paramètres IDE?
nanofarad
2
Probablement les paramètres du projet. Vérifiez le JDK vers lequel vous pointez et le niveau de langue que vous avez demandé.
duffymo
1
@duffymo vous aviez raison, il pointait vers 8. Je ne savais pas que c'était un paramètre.
David dit Réintégrer Monica le

Réponses:

769

J'ai eu le même problème lors de la «rétrogradation» d'un projet de Java 8 vers Java 6. La raison en était qu'il n'avait pas été modifié à tous les endroits dans IntelliJ.

Dans IntelliJ 13.1.4, j'ai dû changer la version Java et SDK aux endroits suivants pour ne pas obtenir cette erreur:

  • Fichier -> Structure du projet -> Paramètres du projet
  • Fichier -> Structure du projet -> Paramètres du module -> Onglet: Sources: Niveau de langue
  • Fichier -> Structure du projet -> Paramètres du module -> Onglet: Dépendances: Module SDK
  • Fichier -> Paramètres -> Compilateur -> Compilateur Java -> Version du bytecode cible

capture d'écran de Fichier> Structure du projet> Projet

capture d'écran de Fichier> Structure du projet> Modules> Sources

capture d'écran de Fichier> Structure du projet> Modules> Dépendances

capture d'écran de Fichier> Paramètres / Préférences> Compilateur> Compilateur Java

La dernière puce est celle qui n'a pas été mise à jour dans mon cas. Une fois que j'ai changé cela, l'erreur a disparu.

Andreas Lundgren
la source
31
celui qui me tuer était celui - ci: File -> Settings -> Compiler -> Java Compiler -> Target bytecode version. Merci.
bitoiu
18
Je rencontrais également ce problème, mais rien de ce qui précède n'a fonctionné. Je devais le faire IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM, au cas où quelqu'un rencontrerait ce problème lors de l'utilisation de Gradle.
Emil
2
Source: Changement de niveau de langue à 7 - Diamants, ARM, multi-catch, etc. pour IDEA 15
Mia
4
Ce devrait être la réponse acceptée. En guise de petit avertissement, dans IntelliJ IDEA 15, le point 4 est passé à Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler.
iusting
Il existe également une sélection JRE dans certaines configurations d'exécution / débogage. Par exemple, les configurations d'exécution / débogage de Tomcat ont un sélecteur "JRE" qui peut provoquer cette erreur.
jordanpg
16

Vérifiez votre pom.xmlpremier (si vous en avez un)
Vérifiez la JDKdépendance de votre module . Assurez-vous que c'est Pour ce faire, allez dans Structure du projet -> SDK Ajouter le chemin d'accès à l'endroit où vous avez stocké 1.8 ( dans mon cas) Appliquez les modifications Maintenant, allez dans Structure du projet -> Modules Modifiez le SDK du module pour appliquer les modifications1.8

jdk1.8.0_45.jdk


1.8

Voila! Vous avez terminé

Yash Bajaj
la source
6

Pour les utilisateurs Gradle ayant ce problème, si rien ci-dessus ne résout ce problème, résolvez mon problème - appliquez ces déclarations dans vos fichiers build.gradle:

targetCompatibility = 1.6 //or 1.7;1.8 and so on
sourceCompatibility = 1.6 //or 1.7;1.8 and so on

Problème résolu!

Java_Waldi
la source
5

Changer pom.xml 1.6pour1.8

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
Aziz Mamoyan
la source
5

Il peut être simplement surmonté en activant Project Structure. Il vous suffit de sélectionner le bon chemin pour la version associée de JDK. Sélectionnez newsur l'onglet des dépendances et choisissez le chemin. C'est fait!

entrez la description de l'image ici

snr
la source
4

Si vous utilisez Gradle comme outil de construction et que vous obtenez cette erreur lors de l'exécution d'une tâche Gradle, c'est-à-dire TomcatRun, jetez un œil à mon autre réponse à la même question

javac: version cible non valide: 1.8

juliangonzalez
la source
Merci! Cela a résolu mon problème après que les réponses ci-dessus ne l'ont pas fait.
chazzlabs du
2

La réponse d'Andreas Lundgren a fonctionné et j'ai pu compiler et exécuter mon application.

Cependant, lorsque j'ai essayé d'exécuter les tests JUnit associés au projet, j'ai reçu la même erreur. Fonctionnement

gradle -version

à partir de l'invite de commande Windows a montré que gradle récupérait toujours le jdk incorrect. Pour y remédier, j'ai dû définir la JAVA_HOMEvariable d'environnement pour pointer vers le jdk correct et redémarrer IntelliJ.

jilbot
la source
1

J'ai vérifié ci-dessus la version du projet, la version du module, la version du bytecode du projet, les paramètres de la version du bytecode cible IntelliJ Idea, mais tous étaient les mêmes que ceux que j'ai grattés.

Je fais face à cette erreur Error:java: invalid source release: 1.8dans IntelliJ Idea 2017.2.6parce que je mis à jour la version de dépendance Mavenfichier pom, qui (dépendance) étaient censés construire pour l' application 1.8 et je JDK devais construire ma demande sur et avec la source du compilateur maven et cible 1.7 JDK.

Par conséquent, je rétrograde la version de dépendance vers une version antérieure de Mavenpom, et l'erreur disparaît après le projet Rebuild Module 'xyz_project'.

ArifMustafa
la source
0

Pour les utilisateurs de Grails, appliquez ces déclarations dans votre fichier BuildConfig.groovy:

grails.project.target.level = 1.6 //or 1.7;1.8 and so on
grails.project.source.level = 1.6 //or 1.7;1.8 and so on
B5A7
la source
0

Vous devez cliquer sur le projet Ouvrir les paramètres du module et modifier le chemin de votre JDK, si dans le fichier POM vous utilisez jdk 1.8, configurez jdk 1.8 avec le chemin correct.

Katherine Nicol
la source
0

J'ai essayé toutes les étapes mentionnées ici https://stackoverflow.com/a/26009627/2058104 , mais le 4ème point a maintenant changé. Vous devez aller dans Préférences -> Build, Execution, Deployment -> Compiler -> Java Compiler

Là-bas, comme indiqué dans la figure ci-dessous, vous devez modifier la "version cible du bytecode". Bien que je l'ai changé en 8 (car j'avais besoin de rétrograder en Java 8), il donnait la même erreur, encore et encore. Par conséquent, essayez de supprimer l'entrée existante (dans ce tableau) et de l'ajouter à nouveau. Cela a fonctionné pour moi.

entrez la description de l'image ici

En revanche, nettoyez le projet et essayez de réexécuter.

cresclux
la source