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?


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.


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


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>

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)


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

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>

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.


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


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


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.


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.



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.


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
    ...
   }
}

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


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é.


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.


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.


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


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>

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é.


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.


0

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.