intellij idea - Ошибка: java: неверный исходный код версии 1.9


129

Я пытаюсь запустить свой класс парсера JSQL, но получаю Error: java: invalid source release 1.9.

Я попытался последовать этому ответу . Я изменил Файл> Сборка, Выполнение, Развертывание> Компилятор Java> Версия байт-кода проекта: 1.8. Однако я не могу изменить уровень языка модуля и уровень языка проекта на 1,8, потому что для этого нет возможности. Я по-прежнему получаю ту же ошибку ниже.

ошибка введите описание изображения здесь

Код

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

Какая версия intellij?
soorapadman

@soorapadman intellij idea 2017.2.2
Alex

вроде нормально должно работать. Вы работаете с проектом maven?
soorapadman

Однако я не могу изменить уровень языка модуля и уровень языка проекта на 1,8, потому что для этого нет возможности. Почему это так? и какая ошибка возникает при попытке сделать это? Также 1.9, похоже, является версией java. У вас настроена Java-9 на вашем компьютере / intelliJ?
Наман

Ответы:


325

Выберите проект, затем File> ProjectStructure> ProjectSettings> Modules -> sources. Вероятно, у вас установлен уровень языка 9:

Скриншот

Просто измените его на 8 (или что вам нужно), и все готово.

Также проверьте те же настройки уровня языка, упомянутые выше, в разделе «Настройки проекта»> «Проект».

введите описание изображения здесь


1
О, наконец-то я знаю, что означает уровень языка проекта, спасибо
Дэниел Дай

1
Кроме того, на изображении выше не забудьте перейти в раздел Модули
Джон Питерс

1
Лучшее изменение в pom.xml <java.version> 1.8 </java.version> As, в противном случае он может сбросить конфигурацию при повторном импорте в intellij
Ракеш Йембарам

22

Иногда проблема возникает из-за неправильной версии байт-кода проекта.

Так что проверьте это: Файл -> Настройки -> Сборка, выполнение, развертывание -> Компилятор -> Компилятор Java -> Версия байт-кода проекта и установите для него значение 8

пример


1
это было решение для меня наверху Настройки проекта-> Модули -> Уровень языка
Кемаль Атик

1
Это отличный дополнительный ответ к принятому.
Далтон,

15

У меня была такая же проблема. Есть ответ:

  • 1. CTRL + ALT + SHIFT + S ;
    1. Затем перейдите в « Модули» ;
    2. « Зависимости ;
    3. Измените « Модуль SDK ».

Понял! Теперь у вас есть Java 9!


5

IntelliJ-инвалид-источник

Вы должны установить JAVA SDK и соответствующий уровень языка в настройках проекта. Нажмите, чтобы увеличить.


3

При использовании maven project.

проверьте файл 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>

если на вашем компьютере установлен jdk 8, измените java.versionсвойство с 9на8


2

У меня была похожая проблема. Проект был открыт с использованием Java 9, но даже после того, как все модули и проект были установлены обратно на 1.8, я все еще получал ошибку.

Мне нужно было заставить Gradle обновить проект, а затем все заработало, как ожидалось.


1

В качестве альтернативы через настройки проекта:

  • Настройки проекта
  • проект
  • Уровень языка проекта (установлен в соответствии с вашими потребностями)

В зависимости от того, как настроена ваша сборка, это может быть подходящим вариантом.


1

В структуре проекта в Project SDK: измените SDK на 11 или выше и на уровне языка проекта: измените на 11 - Синтаксис локальной переменной для лямбда-параметров


0

Для всех, кто борется с этой проблемой, кто пробовал решение DeanM, но безрезультатно, стоит проверить еще кое-что, а именно версию JDK, которую вы настроили для своего проекта. Я пытаюсь сказать, что если вы настроили JDK 8u191 (например) для своего проекта, но у вас установлен уровень языка выше 8, вы получите эту ошибку.

В этом случае, вероятно, лучше спросить того, кто отвечает за проект, какая версия JDK будет предпочтительнее для компиляции исходников.


0

У меня также была такая же проблема в IntellijIdea, после выбора проекта, затем File> ProjectStructure> ProjectSettings> Modules -> sources, которые показывала опция - уровень языка установлен на 9:

Итак, я просто изменил его на 8. Моя проблема все еще не решена.

Основная проблема была с pom.xml. Я повторно импортировал файл pom.xml, и моя проблема была решена.

Итак, всякий раз, когда вы меняли файл pom.xml, IDEA необходимо обновить структуру проекта. Например, если вы добавили туда еще несколько зависимостей, IDEA необходимо добавить их как библиотеки проекта.

В «Настройки»> «Сборка, выполнение, развертывание»> «Инструменты сборки»> «Maven»> «Импорт» вы можете выбрать «Импортировать проекты Maven автоматически». Это автоматически вызовет действие «Reimport» при изменении pom.xml.

введите описание изображения здесь


0

Gradle У меня была такая же проблема, и изменение всех настроек, указанных в более ранних решениях, не имело никакого значения. Затем я зашел в build.gradle, нашел эту строку и удалил ее.

sourceCompatibility = '11'

и это сработало! :)


0

У меня возникла эта проблема при запуске проекта SpringBoot (Maven)

В моем файле POM я изменил версию java с 11 на 8, и она сработала:

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

Убедитесь, что Load maven changesизменение не отразится.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.