web-dev-qa-db-fra.com

IntelliJ IDEA 13 utilise Java 1.5 malgré le réglage 1.7.

Bien que JDK 1.7 ait été spécifié dans tous les paramètres du projet (y compris dans File -> Project Structure -> Project :: Project SDK), l'erreur suivante est générée par IntelliJ 13 lors de la compilation d'un code simple Java 7 utilisant l'opérateur diamant. :

Java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)

Existe-t-il un autre endroit dans la configuration où l'option -source 7 attendue devrait être activée?

133
PNS

Si rien de tout cela ne vous aide (mon cas), vous pouvez le définir dans votre pom.xml, comme ceci:

<properties>
  <maven.compiler.source>1.7</maven.compiler.source>
  <maven.compiler.target>1.7</maven.compiler.target>
</properties>

Comme ce gars cool a mentionné ici: https://stackoverflow.com/a/25888116/1643465

103
Djordje Ivanovic

Veuillez vérifier les niveaux de langue de votre projet/module (Structure du projet | Projet; Structure du projet | Modules | nom-module | Sources). Vous voudrez peut-être aussi jeter un oeil à Paramètres | Compilateur | Java Compilateur | Version de bytecode par module.

Définissez également ceci:

Fichier -> Structure du projet -> Modules :: Sources (à côté de Chemins et dépendances) et qui possède une option "Niveau de langue" qui doit également être définie correctement.

146
Peter Gromov

[Pour IntelliJ IDEA 2016.2]

Je voudrais développer une partie de réponse de Peter Gromov avec une capture d'écran à jour. Plus précisément cette partie particulière:

Vous voudrez peut-être aussi jeter un oeil à Paramètres | Compilateur | Java Compilateur | Version de bytecode par module.

Je crois que (au moins en 2016.2): ​​vérifier différentes commits dans git les réinitialise à 1,5.

Per-module bytecode version

44
Birchlabs

Vous pouvez également appliquer le plug-in maven-compiler-plugin avec la version Java appropriée en l'ajoutant à votre fichier pom.xml:

<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>
15
OlgaMaciaszek

J'ai essayé d'apporter des modifications à Intellij IDEA comme ci-dessous:

1.

File >> Settings >> Build, Execution, Deployment >> Compiler >> Java Compiler >> project bytecode version: 1.8 >> Per-module bytecode version: 1.8

2.

File >> Project Structure >> Project Settings >> Project >> SDK : 1.8, Project Language : 8 - Lambdas
File >> Project Structure >> Project Settings >> Modules >> abc : Language level: 8 - Lambdas

mais rien n'a fonctionné, les versions sont passées à Java 1.5 dès que je l'ai sauvegardée.

Cependant, l'ajout de lignes ci-dessous à la racine (au niveau du projet) pom.xml m'a permis de résoudre le problème ci-dessus: (les deux options ont fonctionné pour moi)

Option 1:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Option 2:

<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>
12
Anamika

Fichier-> Structure du projet-> Paramètres du projet-> Projet-> Niveau de langue du projet

Fichier-> Structure du projet-> Paramètres du projet-> Modules-> Niveau de langue

Changer de niveau en utilisant la liste déroulante

8
ketankk

Dans votre ligne de commande (terminal Unix) Allez dans le dossier racine de votre projet et faites-le

find . -type f -name '*.iml' -exec sed -i '' s/JDK_1_5/JDK_1_8/g {} +

Cela modifiera la propriété de niveau de langue dans tous les fichiers .iml de votre projet de Java 1.5 à Java 1.8.

4
Saideep Sambaraju

Tout d’abord, vous devez changer la "version du bytecode du projet" sous File > Settings, Compiler > Java Compiler

Deuxièmement, effectuez une reconstruction complète.

2
Elliott Frisch

J'ai le même problème mais avec une situation différente. Je peux compiler sans aucun problème avec maven en ligne de commande (mvn clean install), mais dans Intellij j'ai toujours eu "Java: diamond operator is not supported in -source 1.5" erreur de compilation bien que j'ai défini le plugin maven-compiler-plugin avec Java 1,8 dans le pom.xml.

Il s'est avéré que j'ai un paramètre de référentiel distant dans settings.xml de mon maven dont dépend le projet, mais Intellij utilise son propre maven, qui n'a pas le même paramètre que mon maven local.

Ma solution consistait donc à modifier le paramètre Maven de l'Intellij (Settings -> Build, execution, Deployment -> Maven -> Maven home directory) pour utiliser le Maven local.

2
jordom

J'avais la propriété suivante travaillant pour moi dans IntelliJ 2017

  <properties>
        <Java.version>1.8</Java.version>       
  </properties>
0
H.Rabiee

Une autre chose qui pourrait causer cela est d'avoir version incorrect du projet <parent> incorrect.

Dans mon cas, il faisait référence à un projet inexistant et pour une raison quelconque IntelliJ a rétrogradé la version mise à niveau vers la version 1.5 et plus tard, lorsque je l'ai corrigé, il interprétait toujours la version du code cible comme étant la version 5 (malgré le réglage à 11).

0
syntagma