Errore: java: javacTask: la versione di origine 8 richiede la versione di destinazione 1.8


889

Utilizzando IntelliJ IDE non è possibile compilare alcun progetto. Schermate delle impostazioni di seguito:

Usato JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

Project SDK e livello di lingua:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

Livello linguistico:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

Qualcuno ha qualche idea?


1
Non sembra un errore di "Intellij puro"; non stai usando un buildscript o qualcosa del genere?
fge,


Risposte:


1913
  1. File> Impostazioni> Build, Execution, Deployment> Compiler> Java Compiler
  2. Cambia la versione del codice byte di destinazione in 1.8 del modulo per cui stai lavorando.

Se stai usando Maven

Aggiungi il plug-in del compilatore pom.xmlsotto il projectnodo di livello superiore :

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

(Sollevato dai commenti.)

Nota: se non ti dispiace reimportare il tuo progetto, l'unica cosa che devi veramente fare è cambiare il pom e reimportare il progetto, IntelliJ prenderà le impostazioni corrette e non dovrai cambiarle manualmente.


Funziona con IntelliJ 14 Ultimate.
DtechNet,

Nelle versioni IDEA precedenti, prova: Impostazioni -> Compilatore -> Compilatore Java -> Versione bytecode per modulo
Jonik

88
Se sei su un Mac, è in Intellij IDEA> Preferenze ...> Build, Execution, Deployment> Java Compiler
JP Armstrong

4
Per IntelliJ più recente rispetto a 2.016,2, c'è un altro posto per verificare: Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK.
Bruce Sun,

1
Quando si dispone di una gerarchia POM con più di due livelli e il plug-in del compilatore è definito nel POM principale, IntelliJ potrebbe non riconoscerlo al livello più profondo. Dico che potrebbe non farlo, perché per alcuni altri moduli lo fa, anche quando estendono lo stesso POM padre.
Ghiro

202

Devi andare su Impostazioni e impostare nel compilatore Java quanto segue: inserisci qui la descrizione dell'immagine

controlla anche le impostazioni del progetto


116

Questo sembra il tipo di errore generato da Maven quando il plug-in del compilatore non è configurato correttamente. Ecco un esempio di una configurazione del compilatore 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
Per altri neofiti Maven come me, questo dovrebbe essere sotto project, builde poi plugins.
Darren Hale,

4
Anche se <source>1.8</source>e <target>1.8</target>è configurato, può verificarsi l'errore sopra riportato.
BuZZ-dEE,

1
Questo ha funzionato per me, grazie! Il tag della versione non è stato risolto (l'ho modificato per adattarlo alla mia versione di Maven), quindi l'ho commentato. Credo che Maven dovrebbe recuperare automaticamente l'ultima versione corretta in quel caso, sulla base di questo thread: stackoverflow.com/questions/17239394/… .
Boris,

84

Il modo più veloce che ho trovato:

  • premere: CTRL+ SHIFT+ A(per Mac + SHIFT+ A)
  • genere: java compiler
  • stampa: ENTER

Nella finestra Impostazioni, imposta il codice byte di destinazione su 1.8

(o 9 per java9)


3
Questo ha funzionato assolutamente per me (grazie!) Ma non capisco perché sia ​​diverso da quello che c'è nel pom.xml, nelle impostazioni del modulo, ecc ...
Adam Lehenbauer,

1
premere ⌘, per ottenere la preferenza.
X. Wang

31

Esistono due modi per risolvere questo problema:

  1. Imposta impostazioni (File -> Settings -> Build, Execution, Deployment -> Java Compiler): inserisci qui la descrizione dell'immagine
  2. Aggiungi una sezione di build al tuo pom.xml: inserisci qui la descrizione dell'immagine

18

Molte risposte su Maven sono giuste ma non è necessario configurare direttamente il plugin.

Come descritto nella pagina wiki del plugin del compilatore Apache Maven, puoi semplicemente impostare le 2 proprietà utilizzate dal plugin.

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

1
@ Marvin Richter Ho provato la tua soluzione ma non funziona con IntelliJ - La mia ipotesi è che sia corretta nella generazione di maven pura (riga di comando), ma IntelliJ ignora queste proprietà. Ho dovuto configurare il plugin come indicato in altre soluzioni.
Benoit,

1
No, perché le altre soluzioni hanno funzionato. E ora ho migrato il mio progetto a gradle.
Benoit, il

4
Funziona come un fascino dopo aver fatto clic destro su pom.xml -> Maven -> Reimport. Questa dovrebbe essere la risposta accettata per gli utenti Maven.
ptkvsk,

In realtà hai bisogno del plugin org.apache.maven.plugins:maven-compiler-pluginnel tuo file pom o gradle, ciò che nella documentazione inteso dire è che avere quella proprietà impostata nelle proprietà pom sarà sufficiente, fondamentalmente perché impostano i valori predefiniti del plugin, ad esempio <source> $ { maven.compiler.source} </source>
EliuX

Questa dovrebbe essere la risposta accettata. Ha funzionato per me su IntelliJ 2018.2 su mac os 10.13.5
user674669

13

Ho risolto questo problema andando su Struttura del progetto -> Moduli , trova il modulo in questione, fai clic sulla scheda Dipendenze , Module SDKpassa a Project SDK.


9

L'ho risolto cambiando la versione di compilazione di destinazione in 1.8. È dentro:

File >> Impostazioni >> Creazione, esecuzione, distribuzione >> Compilatore >> Compilatore Java


1
Grazie, Vishal. Dobbiamo specificare la versione del bytecode del progetto, o almeno la versione del bytecode per modulo con Intellij Idea. L'impostazione in pom.xml per maven-compiler-plugin non mi ha risolto il problema.
WebComer,


5

Nel mio caso ho risolto questo problema aprendo il file .iml del progetto (si trova nella cartella principale del progetto e ha il nome uguale al nome del progetto) e cambiando la riga <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />in<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

Ho configurato tutto come in altre risposte qui, ma per qualche motivo Idea ha aggiornato il file .iml in modo errato.


2
A volte sembra che Intellij non aggiorni i file di configurazione anche quando sono stati configurati tutti i menu. Le cache non valide e il riavvio (dopo aver modificato i file di configurazione), mi hanno aiutato. Strano.
Jah

1
Grazie mille. Alla fine, dopo aver provato e fallito ogni altra soluzione sopra specificata, ha funzionato.
Nitin Bansal,

4

L'ho corretto modificando il mio file POM. Nota l'ultimo commento sotto la risposta più votata.

<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 fonte deve corrispondere al bersaglio.



3

Se lavori con Android-studio 1.3, procedi nel seguente modo:

Vai a File - Struttura del progetto

In moduli - app - scheda Proprietà , seleziona Compatibilità sorgente - 1.8 e

Compatibilità con gli obiettivi - 1.8 .

E sei a posto.


3

Nel file di livello dell'app Gradle >> compileOptions aggiungi queste due righe

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

Grazie uomo. La tua risposta ha funzionato
Soluzione Spirit

1

Sotto il file compiler.xml troverai:

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

e puoi cambiare il valore target dal tuo vecchio al nuovo per me avevo bisogno di cambiarlo da 1.5 a 1.8


1

Ho appena trascorso un po 'di tempo a lottare con lo stesso problema. L'unica cosa che ha funzionato per me non è stato usare il mvn incorporato (3.3.9) ma puntarlo a una versione scaricata esterna (3.5.0). Alla fine il progetto è stato aperto e tutto è andato bene.


1

Questo problema si verifica se il modulo è configurato con il processore di annotazione e l'altro modulo non lo è. Impostare la stessa configurazione per tutti i moduli in quanto dovrebbe essere dipendenza ciclica.


0

Per me, il problema era che Maven non era in grado di trovare le configurazioni corrette, dal momento che questi elementi erano specificati nel padre principale.

La modifica del file -> Impostazioni -> Build, Excecution, Deployment -> Maven -> User Settings file per puntare alle mie impostazioni personalizzate con repository adeguati ha risolto il problema che altrimenti sarebbe stato nascosto.

È stato scoperto il problema tramite Guida -> Mostra log in explorer -> facendo clic sul file di registro, quando in precedenza veniva visualizzato solo l'errore nel titolo e "java.lang.NullPointerException" nella console.


0

La soluzione del problema è molto semplice . Devi aprire il file .idea / compiler.xml sul tuo progetto İdea e

È necessario scrivere la versione di destinazione appropriata


0

Con Intellij , utilizzando Maven , è necessario verificare che Intellij abbia importato automaticamente il progetto. Puoi controllare facendo clic sulla scheda Maven a destra dell'Editor.

inserisci qui la descrizione dell'immagine

Se il tuo progetto non è qui, aggiungi il pom.xmlfile facendo clic su +.

Ovviamente, il progetto deve anche avere i seguenti <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

Se nessuna delle altre risposte funziona, controlla l'SDK del modulo .

Ho avuto questo errore pop-up per me dopo aver aggiornato il progetto SDK a 1.8, il compilatore Javac a 1.8, ecc. L'impostazione che era il problema per me era il "Modulo SDK".

(su Linux) Vai a File > Project Structure...quindi nella finestra che si apre, seleziona Modulessotto Project Settings. Seleziona il modulo in questione dall'elenco e quindi dalla Dependenciesscheda e assicurati che Module SDKsia impostato in modo appropriato.


0

Ho controllato tutto quanto sopra ma l'errore si verifica ancora.

Ma reimportare tutti i progetti maven (pulsante di ricarica all'interno del pannello Progetti Maven) funziona nel mio caso.


0

Non dimenticare di impostare le dipendenze per il tuo modulo: inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.