Java derleyici düzeyi, yüklü Java proje modelinin sürümüyle eşleşmiyor


203

Eclipse Helios Sürümü altında, JRE Sürümümün 1.6 olarak ayarlandığı Yeni Dinamik Proje oluşturdum. YapılandırMaven Projesine Dönüştür'ü tıklatarak Web Uygulamasına Maven özelliklerini ekledim .

Bunu ekledikten sonra, Eclipse Problems (Tutulma Sorunları) görünümünde bir oluşturma hatası ortaya çıktı:

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

Lütfen bu hatayı nasıl çözeceğimi söyle (JRE sürümümün yalnızca 1.6 olmasını istiyorum).


Bigleftie'nin yanıtı Maven olmayan bir projede bana iyi hizmet etti.
Jack Mason

tutulma kullanıcıları bu günlüğü
Ahmad Nadeem

Yanıtlar:


167

Eclipse'de m2e eklentisini kullandığınızı varsayarsak, sourceve targetsürümlerini 1.6 olarak belirtmeniz gerekir maven-compiler-plugin. m2e bu değerleri projenin Java derleyici düzeyini belirlemek için kullanır. POM'ın bir pasajı aşağıda gösterilmiştir:

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

Alternatif olarak ve eşdeğer olan 1.6 değerlerini maven.compiler.sourceve maven.compiler.targetözelliklerini belirtebilirsiniz :

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

61
Bunu yapabilir misiniz: - Projenizi sağ tıklayın - Özellikler'i tıklayın - Soldaki menüden "Proje Fasetleri" seçeneğini tıklayın - Sağdaki Fasetler bölümündeki "Java" bölümünde "1.6", "1.7" veya versiyonu ... - Tamam'ı tıklayın
Thiago Pereira

3
@ThiagoPereira Farklı bir çalışma alanında yeniden içe aktardığınızda bu değişiklikleri kaybedersiniz. M2e'nin nasıl çalıştığını öğrenin.
Vineet Reynolds

tutulma kullanıcıları journaldev.com/3334/…
Ahmad

401

Projeniz bir Maven projesi değilse, projenizi sağ tıklatın ve Proje Özellikleri iletişim kutusunu açmak için Özellikler'i seçin.

Solda bir Proje Özellikleri öğesi var, seçin, listede Java modelini arayın, proje için hangi sürümü kullanmak istediğinizi seçin ve uygulayın.

Proje Gerçekleri - Java sürümü


19
Project Facet-> Java, maven-compiler-plugin artefakt kaynağı ve hedefi için pom.xml dosyasında bulunanlarla eşleşmelidir.
Arye Rosenstein

4
Bu sorunun temel nedeni @VineetReynolds
Jerry Tian

4
Bu sorun var ve bu bir maven sorunu gibi geliyor, ama maven kullanmıyorum, bir POM dosyam yok ve maven eklentisine sahip olduğumdan bile emin değilim. Yine de aynı hatayı alıyorum; Tutulmam java 1.7 kullanacak şekilde ayarlandı, ancak projemin faset sayfası sadece 1.6'yı seçmeme izin verecek. Neyi yanlış yapıyorum?
rjcarr

7
Dört şey eşleşmelidir 1) Proje-> Java Derleme Yolu-> Kütüphaneler-> JRE sürüm 2) Proje-> Java Derleyici-> Derleyici Uyumluluk Seviye 3) Proje-> Proje Özellikleri-> Java-> Sürüm 4) (Maven kullanılıyorsa) ) pom.xml - maven-derleyici-eklenti artefakt kaynağı ve hedefi
bigleftie

1
@TK Gospodinov cevabını ikinci verdim. benim pom Java sürümü ile bugüne kadar ama proje yönü suçlu oldu.
Soman Dubey

18

TK Gospodinov'un cevabı, maven projeleri için bile doğrudur. Dikkat: Maven kullanıyorum. Pom doğru ve hala bu sorunu var. "Proje Özellikleri" ne gittim ve aslında 1.6'yı gösteren Java seçimini kaldırdım, ancak projem 1.7 kullanıyor. "Çalışma zamanları" sekmesinde sağda jdk1.7 seçeneğini kontrol etmek zorunda kaldım. "Uygula" yı tıkladıktan sonra bile solda hiçbir şey görünmedi. Sorun ortadan kalktı, bu yüzden hala bu cevabın belirli "Proje Özellikleri" ile ilgili konu için önemli olduğunu düşünüyorum. "Project Facets" e geri döndüğünüzde Tamam'ı tıkladıktan sonra, Java'nın 1.7 sürümü olarak göründüğünü fark edeceksiniz, böylece projenin bir Java projesi olarak "işaretlendiğinden" emin olmak için seçebilirsiniz. Ayrıca projeye sağ tıklayıp Maven | Projeyi Güncelle'yi seçmem gerekiyordu.


6

Proje özelliklerinin Project Facet özelliğinde java sürümünü ayarlayarak, proje kök klasörüne -> Özellikler'e sağ tıklayın, Project Facets'i arayın ve uyumlu java sürümünü seçerek bu sorunu çözdüm.

Referans için -

resim açıklamasını buraya girin


5

İçindeki yapılandırmayı şu şekilde değiştirdim workspace/project/.setting/org.eclipse.wst.common.project.facet.core:

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

Yapılandırmayı değiştirmeden önce, projeyi IDE'den kaldırın. Bu benim için çalıştı.


sadece tutulması projeyi kaldırdı ve yeniden ithal sorunu giderildi.
Mohammad Faisal

5

Ben bunu çözüme Projem ---> java Kaynak ----> kütüphaneler > J - RE Sistem Kütüphaneleri [java-1.6] onun "bu halindeyken tıklayın mülkiyet " seçeneğini "Classpath Konteyner" değiştirmek Yürütme Ortamı java- için 1.8 (jdk1.8.0-35) (bu son sürüm )

JDK'yi en son olarak değiştirin


4

Project Facet-> Java, maven-compiler-plugin artefakt kaynağı ve hedefi için pom.xml dosyasında bulunanlarla eşleşmelidir.Bu mükemmeldir.Ama burada yoksa, Java derleyici sürümünü eşleştirerek de düzeltebilirsiniz Porject-Facets ayarından: Eclispe-> Tercihler-> Java-> Derleyici


4

Proje fasetini Project -> Özellikler -> Proje Faseti -> Java -> {gerekli JDK sürümü} 'den değiştirebilirsiniz.


3

Projeyi sağ tıklayın ve özellikleri seçin Soldan java derleyicisini tıklayın ve istediğiniz sürüme geçin Umarım bu yardımcı olur


2

Eclipse'de projenize sağ tıklayın, Maven> Projeti güncelle'ye gidin. Bekleyin ve hata kaybolacaktır. Bu, bu proje için Java sürümünü zaten doğru şekilde yapılandırılmış.

resim açıklamasını buraya girin


1

Tutulma kullanılıyorsa,

Ayarlar altında org.eclipse.wst.common.project.facet.core.xml dosyasına tıklayın.

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

Sürümü doğru sürüme değiştirin.

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.