intellij fikri - Hata: java: geçersiz kaynak sürümü 1.9


129

JSQL ayrıştırıcı sınıfımı çalıştırmaya çalışıyorum ama alıyorum Error: java: invalid source release 1.9.

Bu cevabı takip etmeye çalıştım . File> Build, Execution, Deployment> Java Compiler> Project bytecode versiyonunu değiştirdim: 1.8. Ancak, Modül dil seviyesini ve Proje dil seviyesini 1.8 olarak değiştiremiyorum çünkü bunun için bir seçenek yok. Hala aşağıda aynı hatayı alıyorum.

Hata görüntü açıklamasını buraya girin

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

İntellij'in hangi versiyonu?
soorapadman

@soorapadman intellij idea 2017.2.2
Alex

iyi görünüyor, çalışmalı. Maven projesi ile mi çalışıyorsunuz?
soorapadman

Ancak, Modül dil seviyesini ve Proje dil seviyesini 1.8 olarak değiştiremiyorum çünkü bunun için bir seçenek yok. Neden böyle? ve bunu yapmaya çalışırken hangi hatayı alıyorsunuz? Ayrıca 1.9 java versiyonu gibi görünüyor. Makinenizde / intelliJ'de Java-9 yapılandırılmış mı?
Naman

Yanıtlar:


324

Projeyi seçin, ardından Dosya> Proje Yapısı> Proje Ayarları> Modüller -> kaynaklar Muhtemelen Dil Seviyesini 9 olarak ayarladınız:

ekran görüntüsü

Sadece 8'e (veya ihtiyacınız olan her şeye) değiştirin ve gitmeye hazırsınız.

Ayrıca, Proje Ayarları> Proje altında yukarıda belirtilen Dil Düzeyi ayarlarını kontrol edin.

görüntü açıklamasını buraya girin


1
Oh, nihayet proje dil seviyesinin ne anlama geldiğini biliyorum, teşekkürler
Daniel Dai

1
Ayrıca, yukarıdaki resimde, Modüller bölümüne gitmeyi unutmayın
John Peters

1
Pom.xml <java.version> 1.8 </java.version> 'da daha iyi değişiklik, aksi takdirde intellij'e yeniden içe aktarıldığında yapılandırmayı sıfırlayabilir
Rakesh Yembaram

22

Bazen sorun, proje bayt kodunun yanlış sürümü nedeniyle ortaya çıkar.

Bu yüzden doğrulayın: Dosya -> Ayarlar -> Oluştur, Yürütme, Dağıtım -> Derleyici -> Java Derleyici -> Proje bayt kodu sürümü ve değerini 8 olarak ayarlayın

Misal


1
Proje Ayarları-> Modüller -> Dil Düzeyi
Kemal Atik

1
Bu, kabul edilene mükemmel bir tamamlayıcı cevaptır.
Dalton

15

Ben de aynı sorunu yaşadım. Bir cevap var:

  • 1. CTRL + ALT + ÜST KRKT + S ;
    1. Ardından " Modüller" e gidin ;
    2. " Bağımlılıklar ;
    3. " Modül SDK " değiştirin .

Anladım! Artık Java 9'a sahipsiniz!


5

intellij-geçersiz kaynak

Proje ayarlarında JAVA SDK ve uygun dil seviyesini ayarlamalısınız. Büyütmek için tıklayın.


3

Maven projesini kullanırken.

pom.xml dosyasını kontrol edin

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

makinenize jdk 8 yüklüyse, java.versionözelliğini olarak değiştirin 9.8


2

Az önce benzer bir sorun yaşadım. Proje Java 9 kullanılarak açılmıştı ancak tüm modüller ve proje 1.8'e ayarlandıktan sonra bile hala hatayı alıyordum.

Gradle'ı projeyi yenilemeye zorlamam gerekiyordu ve sonra her şey beklendiği gibi çalıştı.


1

Alternatif olarak Proje Ayarları aracılığıyla:

  • Proje ayarları
  • proje
  • Proje dili Seviyesi (ihtiyaçlarınıza uyacak şekilde ayarlanır)

Yapınızın nasıl kurulduğuna bağlı olarak, gitmenin yolu bu olabilir.


1

In Proje Yapısı içinde Proje SDK: 11 veya daha yüksek ve SDK'yı değiştirmek Proje dil seviyesine: 11'e kadar değiştirmek - lambda parametreler için Yerel değişken sözdizimi


0

DeanM'nin çözümünü deneyen ancak boşuna bu sorunla uğraşan herkes için, kontrol etmeye değer başka bir şey var, projeniz için yapılandırdığınız JDK sürümü. Söylemeye çalıştığım şey, projeniz için JDK 8u191'i (örneğin) yapılandırdıysanız, ancak dil seviyesi 8'den daha yüksek bir değere ayarlandıysa, bu hatayı alacağınızdır.

Bu durumda, muhtemelen projeden sorumlu kişiye, kaynakları derlemek için JDK'nın hangi sürümünün tercih edileceğini sormak daha iyidir.


0

Projeyi seçtikten sonra IntellijIdea'da da aynı sorunu yaşadım, ardından File> ProjectStructure> ProjectSettings> Modules -> seçeneğin gösterdiği kaynaklar - Language Level 9 olarak ayarlandı:

Bu yüzden sadece 8 olarak değiştirdim. Yine de sorunum çözülmedi.

Ana sorun pom.xml ile oldu. Pom.xml dosyasını yeniden içe aktardım ve sorunum çözüldü.

Bu nedenle, pom.xml dosyasını her değiştirdiğinizde, IDEA'nın proje yapısını güncellemesi gerekir. Örneğin, oraya daha fazla bağımlılık eklediyseniz, IDEA'nın bunları proje kitaplıkları olarak eklemesi gerekir.

"Ayarlar> Derleme, Yürütme, Dağıtım> Derleme Araçları> Maven> İçe Aktarma" bölümünde, "Maven projelerini otomatik olarak içe aktar" ı seçebilirsiniz. Bu, pom.xml değiştirildiğinde otomatik olarak "Yeniden Aktar" eylemini başlatır.

görüntü açıklamasını buraya girin


0

Gradle Aynı sorunu yaşadım ve önceki çözümlerde verilen tüm ayarları değiştirmek hiçbir fark yaratmadı . Daha sonra build.gradle'a gittim ve bu satırı buldum ve sildim.

sourceCompatibility = '11'

ve işe yaradı! :)


0

SpringBoot projesi (Maven) çalıştırırken bu sorunu yaşıyordum

POM dosyamda java sürümünü 11'den 8'e değiştirdim ve işe yaradı:

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

Load maven changesDeğişikliğin yansıtılmayacağından emin olun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.