Рівень компілятора Java не відповідає версії встановленої грані проекту Java


202

Я створив новий динамічний проект у версії Eclipse Helios, де для моєї версії JRE встановлено 1.6. Я додав можливості Maven до веб-програми, натиснувши НалаштуватиПеретворити на Maven Project .

Додавши це, у вікні Проблеми затемнення з’явилася помилка збирання:

Java compiler level does not match the version of the installed Java project facet.
Unknown Faceted Project Problem (Java Version Mismatch)

Скажіть, будь ласка, як вирішити цю помилку (я хочу, щоб моя версія JRE була лише 1.6).


Відповідь Bigleftie мені добре послужила для проекту, що не стосується Мейвена.
Джек Мейсон

Користувачі затемнення можуть читати цей журналdev.com/3334/…
Ахмад Надем

Відповіді:


166

Якщо припустити, що ви використовуєте плагін m2e в Eclipse, вам потрібно буде вказати версії sourceта targetверсії як 1.6 для maven-compiler-plugin. m2e використовує ці значення для визначення рівня Java-компілятора проекту. Фрагмент POM показаний нижче:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
    </plugin>
  </plugins>
</build>

Крім того, ви можете вказати maven.compiler.sourceта maven.compiler.targetвластивості зі значеннями 1,6, які будуть еквівалентними:

<properties>
    <maven.compiler.target>1.6</maven.compiler.target>
    <maven.compiler.source>1.6</maven.compiler.source>
</properties>

60
Чи можете ви це зробити: - Клацніть правою кнопкою миші на вашому проекті - Клацніть Властивості - Клацніть на опції «Грані проекту» у меню ліворуч - У розділі граней «Ява» праворуч, змініть його на «1.6», «1.7» або ваш версія ... - Натисніть Ок
Тіаго Перейра

3
@ThiagoPereira Ви втрачаєте ці зміни під час повторного імпорту в іншу робочу область. Дізнайтеся, як працює m2e.
Vineet Reynolds

Користувачі затемнення можуть читати journaldev.com/3334/…
Ахмад

400

Якщо ваш проект не є проектом Maven, клацніть правою кнопкою миші проект і виберіть "Властивості", щоб відкрити діалогове вікно "Властивості проекту".

Ліворуч є пункт «Фасетки проекту», виберіть його, знайдіть у списку грань Java, виберіть, яку версію ви хочете використовувати для проекту та застосуйте.

Факти проекту - версія Java


19
Проект Facet-> Java повинен відповідати тому, що у вас є в pom.xml для джерела артефакту Maven-компілятор-плагін і цілі.
Ар'є Розенштейн

4
Першопричиною цієї проблеми повинна бути відповідь, надана @VineetReynolds
Джеррі Тіан

4
У мене є ця проблема, і це здається, що це проблема Maven, але я не використовую Maven, у мене немає файлу POM, і я навіть не впевнений, що у мене є плагін Maven. Але я отримую цю саму помилку; моє затемнення налаштовано на використання Java 1.7, але фасетна сторінка мого проекту дозволить мені вибрати лише 1.6. Що я роблю неправильно?
rjcarr

7
Чотири речі повинні відповідати 1) Проект-> Шлях збірки Java-> Бібліотеки-> версія JRE 2) Проект-> Компілятор Java-> Компілятор рівня відповідності 3) Проект-> Грані проекту-> Java-> Версія 4) (якщо використовується Maven ) pom.xml - джерело артефакту артефакту Maven-компілятор-плагін
bigleftie

1
Я друга @TK Господінов відповідь. мій пом був в курсі версії Java, але винуватцем проекту був.
Soman Dubey

18

Відповідь Т.К. Господинова є правильною навіть для великих проектів. Обережно: я використовую Maven. Пом був правильним і все-таки отримав це питання. Я перейшов до "Фасетки проекту" і фактично видалив вибір Java, який вказував на 1.6, але мій проект використовує 1.7. Праворуч на вкладці "Runtimes" мені довелося перевірити варіант jdk1.7. Нічого не з’явилося зліва навіть після того, як я натиснув «Застосувати». Питання пішло, хоча саме тому я все ще вважаю, що ця відповідь є важливою для конкретного питання, пов'язаного з "Проектними гранями". Після натискання кнопки "ОК", якщо ви повернетесь до "Фаски проекту", ви помітите, що Java відображається як версія 1.7, і тепер ви можете вибрати її, щоб переконатися, що проект "позначений" як проект Java. Мені також потрібно було клацнути правою кнопкою миші на проект і вибрати Maven | Оновити проект.


6

Я вирішив цю проблему, встановивши версію java у властивості Project Facet властивостей проекту, клацніть правою кнопкою миші кореневу папку проекту -> Властивості, знайдіть грані проекту та виберіть сумісну версію Java.

Для довідки -

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


5

Я змінив конфігурацію всередині workspace/project/.setting/org.eclipse.wst.common.project.facet.core:

installed facet="jst.web" version="2.5"
installed facet="jst.java" version="1.7"

Перед зміною конфігурації видаліть проект із IDE. Це працювало для мене.


щойно видалили проект із затемнення та повторно імпортували виправлену проблему.
Мохаммед Файсал

5

Я вирішив це за допомогою Myproject ---> java Resource ----> бібліотеки -> J RE Бібліотеки системи [java-1.6] натисніть на це перейти до його " властивості ", виберіть "Classpath Container", змініть середовище виконання на java- 1.8 (jdk1.8.0-35) ( найновіший )

Змініть jdk на останній


4

Проект Facet -> Java повинен відповідати тому, що у вас є в pom.xml для джерела артефакту Maven-компілятор-плагін і target.Це ідеально. Але якщо у вас цього немає, то ви також можете виправити це, підходячи до версії компілятора Java в Porject-Facets з налаштування: Eclispe-> Preferences-> Java-> Compiler



3

Клацніть правою кнопкою миші проект та виберіть властивості. Клацніть компілятор Java зліва та перейдіть до потрібної версії. Сподіваюся, це допоможе


2

У Eclipse клацніть правою кнопкою миші на вашому проекті, перейдіть до Maven> Update projetc. Зачекайте, і помилка зникне. Це вже правильно налаштована версія Java для цього проекту.

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


1

Якщо ви використовуєте затемнення,

Під налаштуваннями натисніть на org.eclipse.wst.common.project.facet.core.xml

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <installed facet="java" version="1.7"/>
</faceted-project>

Змініть версію на правильну.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.