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. У вас на комп'ютері / intelliJ налаштований Java-9?
Наман

Відповіді:


324

Виберіть проект, а потім Файл> ProjectStructure> ProjectSettings> Модулі -> джерела. Можливо, рівень мови встановлено на 9:

скріншот

Просто змініть його на 8 (або все, що вам потрібно), і ви готові йти.

Також перевірте ті самі налаштування рівня мови, які були згадані вище, у розділі Налаштування проекту> Проект

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


1
О, нарешті я знаю, що означає рівень мови проекту, дякую
Даніель Дай

1
Також на зображенні вище не забудьте перейти до розділу Модулі
Джон Пітерс

1
Краще змінити pom.xml <java.version> 1.8 </java.version> Так як, інакше він може скинути конфігурацію при повторному імпорті в intellij
Rakesh Yembaram

21

Іноді проблема виникає через неправильну версію байтового коду проекту.

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

Приклад


1
це було рішенням для мене у верхній частині Налаштування проекту-> Модулі -> Рівень мови
Kemal Atik

1
Це чудова додаткова відповідь на прийняту.
Далтон

15

У мене була така ж проблема. Є відповідь:

  • 1. CTRL + ALT + SHIFT + S ;
    1. Потім перейдіть до " Модулі" ;
    2. " Залежності ;
    3. Змініть " SDK модуля ".

Зрозумів! Тепер у вас є Java 9!


5

intellij-invalid-source

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


3

При використанні проекту Maven.

перевірити файл 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 або вище , а в рівні мови Project: змінити 11 - Локальний синтаксис змінного для параметрів лямбда


0

Для тих, хто бореться з цією проблемою, хто спробував рішення DeanM, але безрезультатно, є ще щось, що варто перевірити, яка версія JDK, яку ви налаштували для свого проекту. Що я намагаюся сказати, це те, що якщо ви налаштували JDK 8u191 (наприклад) для свого проекту, але рівень мови встановлений на що-небудь вище, ніж 8, ви отримаєте цю помилку.

У цьому випадку, мабуть, краще запитати того, хто відповідає за проект, для якої версії JDK було б краще збирати джерела.


0

У мене також була така ж проблема в IntellijIdea, після вибору проекту, а потім Файл> ProjectStructure> ProjectSettings> Модулі -> джерела, що відображалася опція - рівень мови встановлений у 9:

Отже, я просто змінюю його на 8. Все-таки моя проблема не отримала рішення.

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

Отже, кожного разу, коли ви змінювали файл pom.xml, IDEA потребує оновлення структури проекту. Наприклад, якщо ви додали туди ще деякі залежності, IDEA потрібно додати їх як бібліотеки проектів.

У "Налаштуваннях> Створення, виконання, розгортання> Інструменти збирання> Maven> Імпорт" ви можете вибрати "Імпортувати проекти Maven автоматично". Це автоматично викликатиме дію "Реімпорт", коли змінено 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.