web-dev-qa-db-fra.com

IDEA: javac: la version source 1.7 nécessite la version cible 1.7

Lors de l'exécution d'un test JUnit, en utilisant IntelliJ IDEA, je reçois

enter image description here

Comment puis-je corriger cela?

  • Utiliser le SDK 1.7
  • Le niveau de langue du module est de 1,7

Maven build fonctionne bien. (C'est pourquoi je crois ceci dans le problème de configuration IDEA)

433
JAM

Vous avez probablement des options de compilateur incorrectes importées de Maven ici:

compiler options

Vérifiez également les paramètres de version du projet et du bytecode du module (target) décrits sur la capture d'écran.

Autres endroits où le niveau de langue source est configuré:

  • Structure du projet | Projet

 project

  • Structure du projet | Modules (vérifier chaque module) | Sources

 sources

Maven niveau de langue par défaut est 1.5 (5.0), vous verrez cette version comme le niveau de langue du module sur la capture d'écran ci-dessus.

Cela peut être changé en utilisant maven-compiler-plugin configuration inside pom.xml:

<project>
  [...]
  <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>
  [...]
</project>

ou

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

IntelliJ IDEA respectera ce paramètre après avoir Réimporté le projet Maven dans la fenêtre Maven Projects tool:

 reimport

612
CrazyCoder

IntelliJ 15, 2016 et 2017

Similaire à celui présenté ci-dessous pour IntelliJ 13 & 14, mais avec un niveau supplémentaire dans le panneau Paramètres/Préférences: Paramètres> Construire, Exécution, Déploiement> Compilateur> Compilateur Java.

 enter image description here

IntelliJ 13 & 14

Dans IntelliJ 13 et 14, vérifiez l'interface utilisateur Paramètres> Compilateur> Compilateur Java pour vous assurer que vous ne ciblez pas une version de bytecode différente dans votre module.

enter image description here

355
Drew Noakes

Dans IntelliJ IDEA 14.1 la "version du bytecode cible" est à un endroit différent.

Le changement suivant a fonctionné pour moi:

Fichier> Paramètres ...> Générer, Exécuter, Déployer> Compilateur> Compilateur Java : change Version du code intermédiaire cible de 1.5 à 1.8

enter image description here

enter image description here

61
ROMANIA_engineer

Avez-vous examiné votre configuration de construction? Cela devrait ressembler à cela si vous utilisez Maven 3 et JDK 7

<build>
    <finalName>SpringApp</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>
41
swissonid

Je me suis heurté à cela et le correctif était d'aller dans Paramètres du projet> Modules> cliquez sur l'onglet du module en question> Dépendances. J'ai remarqué que le module SDK était toujours défini sur 1.6, je l'ai changé en 1.7 et cela a fonctionné.

22
Rob Barreca

J'ai trouvé les options requises ("version de code source cible") dans settings> compilateur> compilateur Java dans mon cas (idée de base 12.1.3)

13
eger

Modifiez le fichier de paramétrage du compilateur du projet dans le chemin suivant et remplacez la "cible" par 1.7

/project/.idea/compiler.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>
9
Joe Cheng

Je l'ai résolu en mettant le champ vide:

Paramètres> Compilateur> Compilateur Java> Version du bytecode du projet

Than IntelliJ utilise la version par défaut du JDK.

5
Robert Moszczynski

J'ai touché ceci après une mise à niveau mineure d'IntelliJ IDEA 14 vers la v14.1 . Pour moi, modifier une édition de pom top/parent m'a aidé, puis cliquez sur réimporter Maven (si ce n'est pas automatique) .

Mais il suffit peut-être de cliquer avec le bouton droit de la souris sur module (s)/module agrégé/parent et sur Maven -> Réimporter.

4
OMax

D'un moment à l'autre, j'ai aussi eu cette erreur sans raison claire. J'ai modifié toutes sortes de paramètres sur le compilateur/module, etc. Mais au final, j'ai simplement recréé le projet IntelliJ en réimportant le projet Maven et le problème a été résolu. Je pense que c'est un bug.

IntelliJ 12 129.961

4
pveentjer

J'ai résolu la méthode ci-dessous

Fichier >> Structure du projet >> Projet >> Niveau de langue du projet -> mettre la bonne version (ex: 1.5)

2
mati

vérifiez . idée/misc.xml parfois vous devez modifier l'attribut languageLevel = "JDK_1_X" manuellement

1
k.a.i

S'il s'agit d'un projet Gradle, dans votre fichier build.gradle, recherchez les paramètres suivants:

sourceCompatibility = "xx"
targetCompatibility = "xx"

Pour tous les sous-projets, dans votre fichier build.gradle racine, vous pouvez indiquer:

subprojects { project ->
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
}

Bien que vous puissiez définir manuellement les niveaux de langue dans Idea> Paramètres, s'il s'agit d'un projet Gradle, Idea synchronise automatiquement les fichiers .iml du module à partir des paramètres Gradle (testé avec Idea 15+). Ainsi, toutes vos modifications manuelles sont annulées lorsque Gradle est actualisé. 

Basé sur Documentation Gradle , s'ils ne sont pas définis, la configuration actuelle de la machine virtuelle Java est utilisée. 

1
Cagatay Kalan

J'ai trouvé un autre moyen de rencontrer cette erreur. Vous pouvez l'obtenir si vous avez réorganisé la structure de votre répertoire et qu'un de vos poms pointe vers l'ancien parent qui ne configure plus javac (car cette configuration a été déplacée au niveau intermédiaire). Si cela se produit, le niveau supérieur par défaut est de 1,5 et le pom de mauvaise qualité en hérite.

Une autre chose à vérifier lorsque vous voyez cette erreur est que votre structure de pom correspond bien à votre structure de répertoire.

1
Gus

Si la compilation de Maven fonctionne correctement, essayez de synchroniser la structure des projets Maven et IntelliJ IDEA.

Dans la fenêtre de l’outil Maven , cliquez sur le bouton Actualiser  refresh . En appuyant sur ce bouton, IntelliJ IDEA analyse la structure du projet dans la fenêtre de l’outil Maven.

Notez que cela ne vous aidera peut-être pas si vous utilisez la génération EAP, car la fonctionnalité de synchronisation Maven peut parfois être endommagée.

1
naXa

Assurez-vous que la bonne dépendance est sélectionnée . Fichier> Structure du projet

Sélectionnez votre projet et accédez à l'onglet Dépendances. Sélectionnez la bonne dépendance dans la liste déroulante ou créez-en une nouvelle. 

0
Viraj Kulkarni

Si toutes les solutions précédentes n'ont pas fonctionné pour vous (ce qui était mon cas), vous pouvez supprimer les fichiers de configuration intellij:

  • répertoire_projet/.idea/compiler.xml
  • répertoire_projet/.idea/encodings.xml
  • répertoire_projet/.idea/misc.xml
  • répertoire_projet/.idea/modules.xml
  • répertoire_projet/.idea/vcs.xml
  • répertoire_projet/.idea/workspace.xml
  • etc.

Intellij en régénérera de nouvelles plus tard . Cependant, ATTENTION, ceci supprimera également toute la configuration intellij faite sur le projet (c'est-à-dire: configuration du mode debug, ...)

0
Youness Marhrani

Vous devez changer la version du compilateur Java dans build Config.

 enter image description here

0
Nirbhay Rana