it-swarm.com.de

IntelliJ IDEA 13 verwendet Java 1.5 trotz Einstellung auf 1.7

Trotz der Angabe von JDK 1.7 in allen Projekteinstellungen (einschließlich in File -> Project Structure -> Project :: Project SDK) Wird der folgende Fehler von IntelliJ 13 Erzeugt, wenn versucht wird, einen einfachen Java 7-Code zu kompilieren, der verwendet den Diamantoperator:

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

Gibt es eine andere Stelle in der Konfiguration, an der die Option -source 7 Aktiviert werden sollte?

133
PNS

Wenn nichts davon hilft (mein Fall), können Sie es in Ihrer pom.xml wie folgt einstellen:

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

Wie dieser coole Typ hier erwähnte: https://stackoverflow.com/a/25888116/1643465

103

Bitte überprüfen Sie die Sprachniveaus Ihres Projekts/Moduls (Projektstruktur | Projekt; Projektstruktur | Module | Modulname | Quellen). Vielleicht möchten Sie auch einen Blick auf Einstellungen | werfen Compiler | Java Compiler | Pro-Modul-Bytecode-Version.

Stellen Sie auch folgendes ein:

Datei -> Projektstruktur -> Module :: Quellen (neben Pfaden und Abhängigkeiten) und die Option "Sprachniveau" muss ebenfalls korrekt eingestellt werden.

146
Peter Gromov

[Für IntelliJ IDEA 2016.2]

Ich möchte einen Teil von Peter Gromovs Antwort mit einem aktuellen Screenshot erweitern. Speziell dieser spezielle Teil:

Vielleicht möchten Sie auch einen Blick auf Einstellungen | werfen Compiler | Java Compiler | Pro-Modul-Bytecode-Version.

Ich glaube, dass (zumindest in 2016.2): ​​das Auschecken verschiedener Commits in git diese auf 1,5 zurücksetzt.

Per-module bytecode version

44
Birchlabs

Alternativ können Sie das maven-compiler-plugin mit der entsprechenden Java version anwenden, indem Sie dies zu Ihrer pom.xml hinzufügen:

<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

Ich habe versucht, Änderungen an Intellij IDEA wie folgt vorzunehmen:

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

aber nichts hat funktioniert, es hat die Versionen auf Java 1.5 zurückgesetzt, sobald ich es gespeichert habe.

Das Hinzufügen der folgenden Zeilen zum Stammverzeichnis (Projektebene) pom.xml hat mich bei der Lösung des obigen Problems unterstützt: (Beide Optionen haben bei mir funktioniert.)

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

Datei-> Projektstruktur-> Projekteinstellungen-> Projekt-> Projektsprache

Datei-> Projektstruktur-> Projekteinstellungen-> Module-> Sprachlevel

Ändern Sie die Stufe mit der Dropdown-Liste

8
ketankk

In Ihrer Befehlszeile (Unix-Terminal) Wechseln Sie zu Ihrem Projektstammordner und führen Sie dies aus

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

Dadurch wird die Sprachebeneneigenschaft in allen IML-Dateien Ihres Projekts von Java 1.5 in Java 1.8 geändert.

4

Zuerst müssen Sie die "Projektbytecode-Version" unter File > Settings, Compiler > Java Compiler Ändern.

Zweitens führen Sie einen vollständigen Neuaufbau durch.

2
Elliott Frisch

Ich habe das gleiche Problem, aber mit anderer Situation. Ich kann ohne Probleme mit maven in der Kommandozeile kompilieren (mvn clean install), aber in Intellij habe ich immer "Java: diamond operator is not supported in -source 1.5" Kompilierfehler, obwohl ich das Maven-Compiler-Plugin mit Java 1.8 in der pom.xml gesetzt habe.

Es stellte sich heraus, dass ich in der settings.xml meines Maven eine Remote-Repository-Einstellung habe, von der das Projekt abhängt, aber Intellij verwendet seinen eigenen Maven, der nicht dieselbe Einstellung wie mein lokaler Maven hat.

Meine Lösung bestand also darin, die Maven-Einstellung des Intellij zu ändern (Settings -> Build, execution, Deployment -> Maven -> Maven home directory) um den lokalen Maven zu benutzen.

2
jordom

Ich hatte das folgende Eigentum, das für mich in IntelliJ 2017 arbeitet

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

Eine weitere Sache, die dazu führen könnte, ist das Vorhandensein eines falschen version des <parent> Projekt.

In meinem Fall zeigte es auf ein nicht vorhandenes Projekt und aus irgendeinem Grund stufte IntelliJ die Version in den Einstellungen auf 1.5 herab und interpretierte die Zielcodeversion, als ich sie reparierte, immer noch als 5 (obwohl sie auf 11 eingestellt war).

0
syntagma