Poziom kompilatora Java nie odpowiada wersji zainstalowanego aspektu projektu Java


202

Utworzyłem nowy projekt dynamiczny w wersji Eclipse Helios, w której moja wersja JRE jest ustawiona na 1.6. Dodałem możliwości Maven do aplikacji sieci Web, klikając KonfigurujKonwertuj na Maven Project .

Po dodaniu tego pojawił się błąd kompilacji w widoku Problemy z Eclipse:

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

Proszę mi powiedzieć, jak rozwiązać ten błąd (chcę, aby moja wersja JRE była tylko w wersji 1.6).


Odpowiedź Bigleftie dobrze mi pomogła przy projekcie innym niż Maven.
Jack Mason

Użytkownicy zaćmienia mogą przeczytać ten dziennikaldev.com/3334/…
Ahmad Nadeem

Odpowiedzi:


166

Zakładając, że używasz wtyczki m2e w środowisku Eclipse, musisz określić wersje sourcei targetdla 1.6 maven-compiler-plugin. m2e używa tych wartości do określenia poziomu kompilatora Java projektu. Fragment POM pokazano poniżej:

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

Alternatywnie możesz określić właściwości maven.compiler.sourcei maven.compiler.targetz wartościami 1.6, które są równoważne:

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

60
Czy możesz to zrobić: - Kliknij projekt prawym przyciskiem myszy - Kliknij Właściwości - Kliknij opcję „Aspekty projektu” w menu po lewej stronie - W sekcji Aspekty „Java” po prawej stronie zmień ją na „1.6”, „1.7” lub wersja ... - Kliknij Ok
Thiago Pereira

3
@ThiagoPereira Tracisz te zmiany, kiedy ponownie importujesz w innym obszarze roboczym. Dowiedz się, jak działa m2e.
Vineet Reynolds,

użytkownicy zaćmienia mogą przeczytać journaldev.com/3334/…
Ahmad Nadeem

400

Jeśli twój projekt nie jest projektem Maven, kliknij prawym przyciskiem myszy swój projekt i wybierz Właściwości, aby otworzyć okno dialogowe Właściwości projektu.

Po lewej stronie jest element Aspekty projektu, wybierz go, poszukaj aspektu Java na liście, wybierz wersję, której chcesz użyć dla projektu i zastosuj.

Fakty dotyczące projektu - wersja Java


19
Project Facet-> Java powinien pasować do tego, co masz w pliku pom.xml dla źródła i celu artefaktu maven-kompilatora-wtyczki.
Arye Rosenstein

4
Podstawową przyczyną tego problemu powinna być odpowiedź udzielona przez @VineetReynolds
Jerry Tian

4
Mam ten problem i wygląda na to, że jest to problem z maven, ale nie używam maven, nie mam pliku POM i nawet nie jestem pewien, czy mam wtyczkę maven. Jednak dostaję ten sam błąd; moje zaćmienie jest skonfigurowane do używania Java 1.7, ale strona aspektu mojego projektu pozwoli mi wybrać tylko 1.6. Co ja robię źle?
rjcarr

7
Cztery rzeczy muszą się zgadzać 1) Projekt-> Ścieżka kompilacji Java-> Biblioteki-> Wersja JRE 2) Projekt-> Kompilator Java-> Poziom zgodności kompilatora 3) Projekt-> Aspekty projektu-> Java-> Wersja 4) (jeśli używasz Maven ) pom.xml - źródło i cel artefaktu maven-kompilator-wtyczka
bigleftie

1
I druga odpowiedź @TK Gospodinov. mój pom był na bieżąco z wersją Java, ale winowajcą był aspekt projektu.
Soman Dubey,

18

Odpowiedź TK Gospodinov jest poprawna nawet dla projektów maven. Uwaga: używam Maven. Pom był poprawny i nadal występuje ten problem. Poszedłem do „Project Facets” i faktycznie usunąłem zaznaczenie Java, które wskazywało na 1.6, ale mój projekt używa 1.7. Po prawej stronie w zakładce „Runtimes” musiałem sprawdzić opcję jdk1.7. Nic nie pojawiło się po lewej, nawet po kliknięciu „Zastosuj”. Problem zniknął, dlatego nadal uważam, że ta odpowiedź jest ważna w konkretnym problemie związanym z „aspektami projektu”. Po naciśnięciu OK, jeśli wrócisz do „Aspekty projektu”, zauważysz, że Java pojawia się jako wersja 1.7, więc możesz go teraz wybrać, aby upewnić się, że projekt jest „oznaczony” jako projekt Java. Musiałem także kliknąć projekt prawym przyciskiem myszy i wybrać Maven | Update Project.


6

Rozwiązałem ten problem, ustawiając wersję java we właściwości Facet projektu właściwości projektu, kliknij prawym przyciskiem myszy folder główny projektu -> Właściwości, wyszukaj aspekty projektu i wybierz kompatybilną wersję Java.

Na przykład -

wprowadź opis zdjęcia tutaj


5

Zmieniłem konfigurację wewnątrz workspace/project/.setting/org.eclipse.wst.common.project.facet.corena:

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

Przed zmianą konfiguracji usuń projekt z IDE. To zadziałało dla mnie.


właśnie usunąłem projekt z zaćmienia i ponownie zaimportowałem naprawiłem problem.
Mohammad Faisal

5

Rozwiązałem go przez Myproject ---> java Resource ----> biblioteki -> J RE System Libraries [java-1.6] kliknij na to przejście do jego „ właściwości ” wybierz „Classpath Container” zmień środowisko wykonywania na java- 1.8 (jdk1.8.0-35) (to jest najnowsze )

Zmień jdk na najnowszy


4

Project Facet-> Java powinien pasować do tego, co masz w pliku pom.xml dla źródła i celu artefaktu maven-kompilatora-wtyczki. Jest to idealne rozwiązanie, ale jeśli go nie masz, możesz to naprawić, dopasowując wersję kompilatora Java w Porject-Facets z ustawienia: Eclispe-> Preferencje-> Java-> Kompilator



3

Kliknij projekt prawym przyciskiem myszy i wybierz właściwości Kliknij kompilator Java po lewej stronie i zmień na wymaganą wersję. Mam nadzieję, że to pomoże


2

W Eclipse kliknij prawym przyciskiem myszy swój projekt, przejdź do Maven> Aktualizuj projetc. Poczekaj, a błąd zniknie. Jest to już poprawnie skonfigurowana wersja Java dla tego projektu.

wprowadź opis zdjęcia tutaj


1

Jeśli używasz Eclipse,

Under.settings kliknij 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>

Zmień wersję na poprawną.

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.