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();
        }
    }
}

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


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


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!


5

intellij-invalid-source

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


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


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.


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.


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


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


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


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! :)


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.