intellij idea - Błąd: java: nieprawidłowe źródło w wersji 1.9

129

Próbuję uruchomić moją klasę parsera JSQL, ale otrzymuję Error: java: invalid source release 1.9.

Próbowałem podążać za tą odpowiedzią . Zmieniłem Plik> Kompilacja, Wykonywanie, Wdrażanie> Kompilator Java> Wersja kodu bajtowego projektu: 1.8. Jednak nie mogę zmienić poziomu języka modułu i poziomu języka projektu na 1.8, ponieważ nie ma na to opcji. Nadal pojawia się ten sam błąd poniżej.

Błąd wprowadź opis obrazu tutaj

Kod

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();
        }
    }
}
Alex
źródło
Jaka wersja intellij?
soorapadman
@soorapadman intellij idea 2017.2.2
Alex
wydaje się w porządku, powinno działać. Pracujesz z Maven Project?
soorapadman
Nie mogę jednak zmienić poziomu języka modułu i poziomu języka projektu na 1.8, ponieważ nie ma na to opcji. dlaczego to jest takie? i jaki błąd otrzymujesz, próbując to zrobić? Wydaje się, że także 1.9 jest wersją java. Czy masz skonfigurowaną Javę-9 na swoim komputerze / intelliJ?
Naman

Odpowiedzi:

324

Wybierz projekt, a następnie File> ProjectStructure> ProjectSettings> Modules -> sources Prawdopodobnie masz ustawiony poziom języka na 9:

zrzut ekranu

Po prostu zmień go na 8 (lub cokolwiek potrzebujesz) i gotowe.

Sprawdź również te same ustawienia poziomu języka, które wymieniono powyżej, w obszarze Ustawienia projektu> Projekt

wprowadź opis obrazu tutaj

Dziekan M.
źródło
1
Och, w końcu wiem, co oznacza poziom języka projektu, dzięki
Daniel Dai
1
Ponadto, na powyższym obrazku, nie zapomnij przejść do sekcji Moduły
John Peters
1
Lepsza zmiana w pom.xml <java.version> 1.8 </java.version> Jak, w przeciwnym razie może zresetować konfigurację po ponownym
zaimportowaniu
21

Czasami problem występuje z powodu nieprawidłowej wersji kodu bajtowego projektu.

Sprawdź to: Plik -> Ustawienia -> Kompilacja, wykonanie, wdrożenie -> Kompilator -> Kompilator Java -> Wersja kodu bajtowego projektu i ustaw jego wartość na 8

Przykład

Rogol
źródło
1
to było rozwiązanie dla mnie na górze Ustawienia projektu-> Moduły -> Poziom języka
Kemal Atik
1
To świetna odpowiedź uzupełniająca do przyjętej.
Dalton
15

Miałem ten sam problem. Jest odpowiedź:

  • 1. CTRL + ALT + SHIFT + S ;
    1. Następnie przejdź do „ Moduły” ;
    2. Zależności ;
    3. Zmień „ Module SDK ”.

Rozumiem! Teraz masz Java 9!

Dmitrij Kaltovich
źródło
5

intellij-invalid-source

Musisz ustawić JAVA SDK i odpowiedni poziom języka w ustawieniach projektu. Kliknij, aby powiększyć.

Gayan Weerakutti
źródło
3

Podczas korzystania z projektu maven.

sprawdź plik 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>

jeśli masz zainstalowany jdk 8 na swoim komputerze, zmień java.versionwłaściwość z 9na8

abitcode
źródło
2

Właśnie miałem podobny problem. Projekt został otwarty przy użyciu Java 9, ale nawet po ustawieniu wszystkich modułów i projektu z powrotem na 1.8, nadal otrzymywałem błąd.

Musiałem zmusić Gradle do odświeżenia projektu, a potem wszystko działało zgodnie z oczekiwaniami.

Edward
źródło
1

Alternatywnie w ustawieniach projektu:

  • Ustawienia projektu
  • Projekt
  • Poziom języka projektu (dostosowany do Twoich potrzeb)

W zależności od konfiguracji Twojej kompilacji może to być właściwy sposób.

felvhage
źródło
1

W strukturze projektu w Project SDK: zmień SDK na 11 lub nowszy i na poziomie języka projektu: zmień na 11 - Lokalna składnia zmiennych dla parametrów lambda

Lucian L.
źródło
0

Dla każdego, kto boryka się z tym problemem, który wypróbował rozwiązanie DeanM, ale bezskutecznie, warto sprawdzić jeszcze coś, czyli wersję JDK skonfigurowaną dla swojego projektu. Chcę powiedzieć, że jeśli skonfigurowałeś JDK 8u191 (na przykład) dla swojego projektu, ale masz ustawiony poziom języka na wyższy niż 8, otrzymasz ten błąd.

W takim przypadku prawdopodobnie lepiej jest zapytać kogoś, kto jest odpowiedzialny za projekt, która wersja JDK byłaby lepsza do skompilowania źródeł.

Tharkius
źródło
0

Miałem też ten sam problem w IntellijIdea, po wybraniu projektu, a następnie File> ProjectStructure> ProjectSettings> Modules -> źródła pokazywała się opcja - poziom języka ustawiony na 9:

Więc po prostu zmieniam to na 8. Mimo to mój problem nie został rozwiązany.

Główny problem dotyczył pom.xml. Ponownie zaimportowałem plik pom.xml i problem został rozwiązany.

Tak więc za każdym razem, gdy zmienisz plik pom.xml, IDEA musi zaktualizować strukturę projektu. Na przykład, jeśli dodałeś tam więcej zależności, IDEA musi dodać je jako biblioteki projektów.

W "Ustawienia> Kompilacja, Wykonanie, Wdrożenie> Narzędzia do budowania> Maven> Importowanie" możesz wybrać "Importuj projekty Maven automatycznie". Spowoduje to automatyczne wywołanie akcji „Reimport” po zmianie pliku pom.xml.

wprowadź opis obrazu tutaj

amitsahu86
źródło
0

Gradle miałem ten sam problem i zmiana wszystkich ustawień podanych we wcześniejszych rozwiązaniach nie robiła różnicy. Następnie poszedłem do build.gradle i znalazłem ten wiersz i usunąłem go.

sourceCompatibility = '11'

i zadziałało! :)

likejudo
źródło
0

Miałem ten problem podczas uruchamiania projektu SpringBoot (Maven)

W moim pliku POM zmieniłem wersję java z 11 na 8 i zadziałało:

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

Upewnij się, że Load maven changesinaczej zmiana nie będzie odzwierciedlać.

Ojonugwa Jude Ochalifu
źródło