intellij idea - Errore: java: versione sorgente 1.9 non valida


129

Sto cercando di eseguire la mia classe parser JSQL, ma sto ottenendo Error: java: invalid source release 1.9.

Ho provato a seguire questa risposta . Ho cambiato File> Build, Execution, Deployment> Java Compiler> Project bytecode version: 1.8. Tuttavia, non posso cambiare il livello di lingua del modulo e il livello di lingua del progetto in 1.8 perché non c'è opzione per quello. Di seguito ricevo ancora lo stesso errore.

Errore inserisci qui la descrizione dell'immagine

Codice

package cs4321.project2;

import java.io.FileReader;
import net.sf.jsqlparser.parser.CCJSqlParser;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.select.Select;

public class Parser {
    private static final String queriesFile = "resources/input/queries.sql";

    public static void main(String[] args) {
        try {
            CCJSqlParser parser = new CCJSqlParser(new FileReader(queriesFile));
            Statement statement;
            while ((statement = parser.Statement()) != null) {
                System.out.println("Read statement: " + statement);
                Select select = (Select) statement;
                System.out.println("Select body is " + select.getSelectBody());
            }
        } catch (Exception e) {
            System.err.println("Exception occurred during parsing");
            e.printStackTrace();
        }
    }
}

Quale versione di intellij?
soorapadman,

@soorapadman intellij idea 2017.2.2
Alex

sembra che dovrebbe funzionare. Stai lavorando al progetto Maven?
soorapadman,

Tuttavia, non posso cambiare il livello di lingua del modulo e il livello di lingua del progetto in 1.8 perché non c'è opzione per quello. perchè è così? e quale errore viene visualizzato durante il tentativo di farlo? Anche 1.9 sembra essere la versione java. Java-9 è configurato sul tuo computer / intelliJ?
Naman,

Risposte:


324

Seleziona il progetto, quindi File> ProjectStructure> ProjectSettings> Modules -> fonti Probabilmente il livello della lingua è impostato su 9:

immagine dello schermo

Basta cambiarlo in 8 (o qualunque cosa ti serva) e sei pronto per partire.

Inoltre, controlla le stesse impostazioni del livello di lingua sopra menzionate, in Impostazioni progetto> Progetto

inserisci qui la descrizione dell'immagine


1
Oh, finalmente so cosa significa il livello linguistico del progetto, grazie
Daniel Dai,

1
Inoltre, nell'immagine sopra, non dimenticare di andare alla sezione Moduli
John Peters,

1
Meglio cambiare in pom.xml <java.version> 1.8 </java.version> Come, altrimenti potrebbe ripristinare la configurazione al momento della reimportazione in intellij
Rakesh Yembaram,

22

A volte il problema si verifica a causa della versione errata del bytecode del progetto.

Quindi verificalo: File -> Impostazioni -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode version e imposta il suo valore su 8

Esempio


1
è stata la soluzione per me in cima a Impostazioni progetto-> Moduli -> Livello lingua
Kemal Atik

1
Questa è un'ottima risposta complementare a quella accettata.
Dalton,

15

Ho avuto lo stesso problema. C'è una risposta:

  • 1. CTRL + ALT + MAIUSC + S ;
    1. Quindi vai a " Moduli" ;
    2. " Dipendenze ;
    3. Cambia " Modulo SDK ".

Fatto! Ora hai Java 9!


5

IntelliJ-invalid-source

Devi impostare l'SDK JAVA e il livello di lingua appropriato nelle impostazioni del progetto. Clicca per ingrandire.


3

Quando si utilizza il progetto Maven.

controlla il file pom.xml

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>9</java.version>
</properties>

se hai installato jdk 8 sul tuo computer, modifica la java.versionproprietà da 9a8


2

Ho appena avuto un problema simile. Il progetto era stato aperto utilizzando Java 9 ma anche dopo che tutti i moduli e il progetto erano stati ripristinati a 1.8, continuavo a ricevere l'errore.

Avevo bisogno di forzare Gradle ad aggiornare il progetto e poi tutto è andato come previsto.


1

In alternativa tramite Impostazioni progetto:

  • Impostazioni del progetto
  • Progetto
  • Livello della lingua del progetto (impostato per soddisfare le tue esigenze)

A seconda della configurazione della build, questa potrebbe essere la strada da percorrere.


1

In Project Project in Project SDK: modifica SDK su 11 o superiore e in Project language level: modifica su 11 - Sintassi delle variabili locali per i parametri lambda


0

Per chiunque abbia problemi con questo problema che ha provato la soluzione di DeanM ma senza risultati, c'è qualcos'altro che vale la pena controllare, che è la versione del JDK che hai configurato per il tuo progetto. Quello che sto cercando di dire è che se hai configurato JDK 8u191 (per esempio) per il tuo progetto, ma il livello della lingua è impostato su un valore superiore a 8, otterrai questo errore.

In questo caso, probabilmente è meglio chiedere a chiunque sia responsabile del progetto, quale versione di JDK sarebbe preferibile per compilare le fonti.


0

Ho anche avuto lo stesso problema in IntellijIdea, dopo aver selezionato il progetto, quindi File> ProjectStructure> ProjectSettings> Modules -> fonti mostrate dall'opzione - Livello lingua impostato su 9:

Quindi, lo cambio solo in 8. Tuttavia il mio problema non è stato risolto.

Il problema principale era con pom.xml. Ho reimportato il file pom.xml e il mio problema è stato risolto.

Pertanto, ogni volta che si modifica il file pom.xml, IDEA deve aggiornare la struttura del progetto. Ad esempio, se hai aggiunto altre dipendenze, IDEA deve aggiungerle come librerie di progetti.

In "Impostazioni> Build, Execution, Deployment> Build Tools> Maven> Importing" puoi scegliere "Importa progetti Maven automaticamente". Questo invocherà automaticamente l'azione "Reimport" quando il pom.xml viene modificato.

inserisci qui la descrizione dell'immagine


0

Gradle I ha avuto lo stesso problema e la modifica di tutte le impostazioni fornite nelle soluzioni precedenti non ha fatto alcuna differenza. Poi sono andato su build.gradle e ho trovato questa riga e l'ho cancellata.

sourceCompatibility = '11'

e ha funzionato! :)


0

Ho riscontrato questo problema durante l'esecuzione di un progetto SpringBoot (Maven)

Nel mio file POM ho cambiato la versione java da 11 a 8 e ha funzionato:

<properties>
    <java.version>8</java.version> //The default was 11
</properties>

Assicurati che Load maven changesil cambiamento non si rifletta.

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.