Erreur: java: javacTask: la version source 8 nécessite la version cible 1.8

889

L'utilisation d'IntelliJ IDE ne peut pas compiler de projets. Captures d'écran des paramètres ci-dessous:

JDK d'occasion:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

SDK du projet et niveau de langue:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

Niveau de langue:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

Quelqu'un a des idées?

Amateur
la source
1
Cela ne ressemble pas à une erreur de "pure Intellij"; n'utilisez-vous pas un buildscript de fourmi ou quelque chose?
fge

Réponses:

1913
  1. Fichier> Paramètres> Build, Execution, Deployment> Compiler> Java Compiler
  2. Remplacez la version Target bytecode par 1.8 du module pour lequel vous travaillez.

Si vous utilisez Maven

Ajoutez le plugin du compilateur pom.xmlsous le projectnœud de niveau supérieur :

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

(Tiré des commentaires.)

Remarque: Si cela ne vous dérange pas de réimporter votre projet, la seule chose que vous devez vraiment faire est de modifier le pom et de réimporter le projet, alors IntelliJ récupérera les paramètres corrects et vous n'aurez pas à les modifier manuellement.

Weslor
la source
Fonctionne dans IntelliJ 14 Ultimate.
DtechNet
Sur les anciennes versions d'IDEA, essayez: Paramètres -> Compilateur -> Compilateur Java -> Version bytecode par module
Jonik
88
Si vous êtes sur un Mac, c'est sous Intellij IDEA> Préférences ...> Build, Execution, Deployment> Java Compiler
JP Armstrong
4
Pour Intellij plus récent que 2016,2, il y a encore une place pour vérifier: Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK.
Bruce Sun
1
Lorsque vous avez une hiérarchie POM avec plus de deux niveaux et que votre plug-in de compilation est défini dans le POM parent, IntelliJ peut ne pas le reconnaître au niveau le plus profond. Je dis que non, car pour certains autres modules, il le fait, même lorsqu'ils étendent le même POM parent.
Dormouse
202

Vous devez aller dans Paramètres et définir sous le compilateur Java les éléments suivants: entrez la description de l'image ici

vérifiez également les paramètres du projet

Gregory Mazur
la source
116

Cela ressemble au type d'erreur que Maven génère lorsque vous n'avez pas configuré correctement le plugin du compilateur. Voici un exemple de configuration de compilateur Java 8.

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>
Steve Chaloner
la source
10
Cela devrait être sous d'autres comme moi Maven débutants, project, build, et plugins.
Darren Hale
4
De plus, si <source>1.8</source>et <target>1.8</target>est configuré, l'erreur ci-dessus peut se produire.
BuZZ-dEE
1
Cela a fonctionné pour moi, merci! La balise de version n'a pas été résolue (je l'ai modifiée pour correspondre à ma version de Maven), je l'ai donc commentée. Je crois que Maven devrait récupérer automatiquement la dernière version correcte dans ce cas, sur la base de ce fil: stackoverflow.com/questions/17239394/… .
Boris
84

Le moyen le plus rapide que j'ai trouvé:

  • appuyez sur: CTRL+ SHIFT+ A(pour Mac + SHIFT+ A)
  • type: java compiler
  • presse: ENTER

Dans la fenêtre Paramètres, définissez le bytecode cible sur 1,8

(ou 9 pour java9)

snovelli
la source
3
Cela a absolument fonctionné pour moi (merci!) Mais je ne comprends pas pourquoi c'est différent de ce qui est dans le pom.xml, les paramètres du module, etc ...
Adam Lehenbauer
1
appuyez sur ⌘, pour obtenir la préférence.
X. Wang
31

Il existe deux façons de résoudre ce problème:

  1. Définissez les paramètres (File -> Settings -> Build, Execution, Deployment -> Java Compiler): entrez la description de l'image ici
  2. Ajoutez une section de construction à votre pom.xml: entrez la description de l'image ici
Lord Nighton
la source
18

De nombreuses réponses concernant Maven sont correctes mais vous n'avez pas à configurer directement le plugin.

Comme décrit sur la page wiki du plugin du compilateur Apache Maven, vous pouvez simplement définir les 2 propriétés utilisées par le plugin.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>
Marvin Richter
la source
1
@ Marvin Richter J'ai essayé votre solution mais elle ne fonctionne pas avec IntelliJ - Je suppose qu'elle est correcte dans la version pure maven (ligne de commande), mais IntelliJ ignore simplement ces propriétés. J'ai dû configurer le plugin comme mentionné dans d'autres solutions.
Benoit
1
Non, je ne l'ai pas fait, car les autres solutions ont fonctionné. Et maintenant, j'ai migré mon projet vers Gradle.
Benoit
4
Fonctionne comme un charme après avoir fait un clic droit sur pom.xml -> Maven -> Réimporter. Cela devrait être la réponse acceptée pour les utilisateurs de Maven.
ptkvsk
Vous avez en fait besoin du plugin org.apache.maven.plugins:maven-compiler-plugindans votre fichier pom ou gradle, ce que la documentation a l'intention de dire est que le fait d'avoir cette propriété définie dans les propriétés pom sera suffisant, essentiellement parce qu'ils définissent les valeurs par défaut du plugin, par exemple <source> $ { maven.compiler.source} </source>
EliuX
Ce devrait être la réponse acceptée. A travaillé pour moi sur IntelliJ 2018.2 sur mac os 10.13.5
user674669
13

J'ai corrigé cela en allant dans Structure du projet -> Modules , recherchez le module en question, cliquez sur l' onglet Dépendances , passez Module SDKà Project SDK.

Sam Barnum
la source
9

Je l'ai corrigé juste en changeant la version de compilation cible en 1.8. C'est dedans:

Fichier >> Paramètres >> Build, Execution, Deployment >> Compiler >> Java Compiler

Vishal
la source
1
Merci, Vishal. Nous devons spécifier la version du bytecode du projet, ou au moins la version du bytecode par module avec Intellij Idea. Le simple fait de le définir dans pom.xml pour maven-compiler-plugin n'a pas résolu le problème pour moi.
WebComer
6

Vous devez accéder au niveau /.idea/compiler.xmlet passer targetau jdkniveau requis .

entrez la description de l'image ici

Muhammad Usman
la source
5

Dans mon cas, j'ai résolu ce problème en ouvrant le fichier .iml du projet (il se trouve dans le dossier racine du projet et a le même nom que le nom du projet) et en changeant la ligne <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />en<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

J'ai tout configuré comme dans les autres réponses ici, mais pour une raison quelconque, Idea a mis à jour le fichier .iml de manière incorrecte.

Nuage
la source
2
Il semble parfois qu'Intellij ne met pas à jour les fichiers de configuration même lorsque vous avez configuré tous les menus. Invalider les caches et redémarrer (après avoir édité les fichiers de configuration), a fait l'affaire pour moi. Étrange.
jah
1
Merci beaucoup. Enfin, après avoir essayé et échoué toutes les autres solutions spécifiées ci-dessus, cela a fonctionné.
Nitin Bansal
4

Je l'ai corrigé en modifiant mon fichier POM. Remarquez le dernier commentaire sous la réponse la plus votée.

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

La source doit correspondre à la cible.

user4884640
la source
4

Je viens de réimporter le bouton maven, puis l'erreur a disparu.

entrez la description de l'image ici

Pham Hung
la source
Merci. Cette allusion a réussi
Veilchen4ever
3

Si vous travaillez avec Android-studio 1.3, suivez les étapes ci-dessous -

Allez dans Fichier - Structure du projet

Sous modules - application - onglet Propriétés , choisissez Compatibilité source - 1.8 et

Compatibilité des cibles - 1.8 .

Et vous êtes prêt à partir.

B.shruti
la source
3

Dans votre fichier de niveau d'application Gradle >> compileOptions ajoutez ces deux lignes

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}
Badr
la source
Merci mec. Votre réponse a fonctionné
Solution Spirit
1

Sous le fichier compiler.xml, vous trouverez:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

et vous pouvez changer la valeur cible de votre ancienne à la nouvelle pour moi, je devais la changer de 1,5 à 1,8

Bachiri Taoufiq Abderrahman
la source
1

Je viens de passer un moment à lutter contre le même problème. La seule chose qui a fonctionné pour moi n'était pas d'utiliser le mvn intégré (3.3.9) mais de le pointer vers une version téléchargée externe (3.5.0). Finalement le projet s'est ouvert et tout s'est bien passé.

tonnerre
la source
1

Ce problème se produit si votre module est configuré avec un processeur d'annotation et qu'un autre module ne l'est pas. Définissez la même configuration pour tous les modules car il s'agirait d'une dépendance cyclique.

Gani
la source
0

Pour moi, le problème était que Maven n'était pas en mesure de trouver les configurations appropriées, car ces éléments étaient spécifiés dans le pom parent.

Changer de fichier -> Paramètres -> Construire, exécuter, déployer -> Maven -> Fichier de paramètres utilisateur pour pointer vers mes paramètres personnalisés avec des référentiels appropriés a corrigé le problème qui se cachait autrement.

Vous avez découvert le problème via l'aide -> Afficher l'explorateur de journal -> en cliquant sur le fichier journal, alors que précédemment seulement obtenu l'erreur dans le titre et "java.lang.NullPointerException" dans la console.

eis
la source
0

La solution du problème est très simple. Vous devez ouvrir le fichier .idea / compiler.xml sur votre projet İdea et

Vous devez écrire la version cible appropriée

Axmedbek
la source
0

Avec Intellij , en utilisant Maven , vous devez vérifier qu'Intellij a importé automatiquement votre projet. Vous pouvez vérifier en cliquant sur l'onglet Maven à droite de votre éditeur.

entrez la description de l'image ici

Si votre projet n'est pas ici, ajoutez le pom.xmlfichier en cliquant sur +.

De toute évidence, le projet doit également avoir les éléments suivants <build/>:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
Nicolas Zozol
la source
0

Si aucune des autres réponses ne fonctionne, vérifiez le SDK de votre module .

J'ai eu cette erreur pour moi après avoir mis à jour le SDK du projet en 1.8, le compilateur Javac en 1.8, etc. Le paramètre qui était le problème pour moi était le "Module SDK".

(sous Linux) Allez File > Project Structure...ensuite dans la fenêtre qui s'ouvre, sélectionnez Modulessous Project Settings. Sélectionnez le module en question dans la liste, puis l' Dependenciesonglet et assurez-vous qu'il Module SDKest correctement configuré.

dzimney
la source
0

J'ai vérifié tout ce qui précède mais l'erreur persiste.

Mais réimporter tous les projets maven (bouton de rechargement dans le panneau Projets Maven) fonctionne dans mon cas.

casser
la source
0

N'oubliez pas de définir des dépendances pour votre module: entrez la description de l'image ici

Hieu Vo
la source