ระดับคอมไพเลอร์ Java ไม่ตรงกับเวอร์ชันของ Java project facet ที่ติดตั้ง


203

ฉันได้สร้างโครงการไดนามิกใหม่ภายใต้เวอร์ชัน Eclipse Helios ซึ่งเวอร์ชัน JRE ของฉันถูกตั้งค่าเป็น 1.6 ผมได้เพิ่มความสามารถในการ Maven แอพลิเคชันเว็บโดยการคลิกที่กำหนดค่า → แปลงโครงการ Maven

หลังจากเพิ่มสิ่งนี้ข้อผิดพลาดในการสร้างปรากฏขึ้นในมุมมองปัญหา Eclipse:

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 ทำหน้าที่ได้ดีสำหรับโครงการที่ไม่ใช่ Maven
Jack Mason

ผู้ใช้ eclipse สามารถอ่านjournaldev.com/3334/
Ahmad Nadeem

คำตอบ:


167

สมมติว่าคุณกำลังใช้ 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
คุณสามารถทำได้: - คลิกขวาที่โครงการของคุณ - คลิกคุณสมบัติ - คลิกตัวเลือก "Project Facets" ที่เมนูด้านซ้าย - ใต้หัวข้อ Facet "Java" ทางด้านขวาเปลี่ยนเป็น "1.6", "1.7" หรือ รุ่น ... - คลิกตกลง
Thiago Pereira

3
@ThiagoPereira คุณสูญเสียการเปลี่ยนแปลงเหล่านั้นเมื่อคุณนำเข้าอีกครั้งในพื้นที่ทำงานอื่น เรียนรู้วิธีการทำงานของ m2e
Vineet Reynolds

ผู้ใช้ eclipse สามารถอ่านjournaldev.com/3334/…
Ahmad Nadeem

401

หากโครงการของคุณไม่ใช่โครงการ Maven ให้คลิกขวาที่โครงการของคุณแล้วเลือกคุณสมบัติเพื่อเปิดกล่องโต้ตอบคุณสมบัติโครงการ

มีรายการ Face Face Project ที่อยู่ทางซ้ายเลือกมันมองหา Java facet ในรายการเลือกเวอร์ชันที่คุณต้องการใช้สำหรับโครงการและนำไปใช้

Project Factes - เวอร์ชัน Java


19
Project Facet-> Java ควรตรงกับสิ่งที่คุณมีใน pom.xml สำหรับแหล่งที่มาและเป้าหมายของ maven-compiler-plugin
Arye Rosenstein

4
สาเหตุที่แท้จริงของปัญหานี้ควรเป็นคำตอบที่ @VineetReynolds
Jerry Tian

4
ฉันมีปัญหานี้และดูเหมือนว่าเป็นปัญหา maven แต่ฉันไม่ได้ใช้ maven ฉันไม่มีไฟล์ POM และฉันไม่แน่ใจด้วยซ้ำว่าฉันมีปลั๊กอิน maven แต่ฉันก็ได้รับข้อผิดพลาดเดียวกันนี้ eclipse ของฉันถูกตั้งค่าให้ใช้ java 1.7 แต่หน้า facet ของโปรเจ็กต์ของฉันจะให้ฉันเลือก 1.6 เท่านั้น ผมทำอะไรผิดหรือเปล่า?
rjcarr

7
สี่สิ่งต้องตรงกัน 1) Project-> Java Build Path-> Libraries-> JRE เวอร์ชัน 2) Project-> Java Compiler-> Compiler Compliance Level 3) Project-> Project Facets-> Java-> Version 4) (หากใช้ Maven ) pom.xml - แหล่งที่มาและเป้าหมายเป้าหมาย maven-compiler-plugin
bigleftie

1
ฉันตอบ @TK Gospodinov ที่สอง pom ของฉันเป็นรุ่นล่าสุดกับเวอร์ชัน Java แต่แง่มุมของโปรเจ็กต์คือผู้ร้าย
Soman Dubey

18

คำตอบของ TK Gospodinov นั้นถูกต้องแม้แต่กับโครงการ maven ระวัง: ฉันใช้ Maven ปอมนั้นถูกต้องและยังคงได้รับปัญหานี้ ฉันไปที่ "Project Facets" และลบการเลือก Java ที่ชี้ไปที่ 1.6 แต่โครงการของฉันใช้ 1.7 ทางด้านขวาในแท็บ "Runtimes" ฉันต้องตรวจสอบตัวเลือก jdk1.7 ไม่มีอะไรปรากฏขึ้นทางด้านซ้ายแม้ว่าฉันจะกด "นำไปใช้" ปัญหาหายไปซึ่งเป็นสาเหตุที่ฉันยังคงคิดว่าคำตอบนี้เป็นสิ่งสำคัญของปัญหาเฉพาะที่เกี่ยวข้องกับ "Project Facets" หลังจากที่คุณกด OK หากคุณกลับมาที่ "Project Facets" คุณจะสังเกตเห็นว่า Java แสดงเป็นรุ่น 1.7 ดังนั้นคุณสามารถเลือกได้เพื่อให้แน่ใจว่าโครงการ "ทำเครื่องหมาย" เป็นโครงการ Java ฉันต้องคลิกขวาที่โปรเจ็กต์และเลือก Maven | Update Project


6

ฉันแก้ไขปัญหานี้โดยการตั้งค่าเวอร์ชัน java ในคุณสมบัติ Project Facet ของคุณสมบัติโครงการคลิกขวาที่โฟลเดอร์รูทโปรเจค -> คุณสมบัติค้นหา Project Facets และเลือกจาวาเวอร์ชันที่เข้ากันได้

สำหรับการอ้างอิง -

ป้อนคำอธิบายรูปภาพที่นี่


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 สิ่งนี้ใช้ได้สำหรับฉัน


เพิ่งลบโครงการจาก eclipse และนำเข้าอีกครั้งแก้ไขปัญหา
Mohammad Faisal

5

ฉันแก้ไขโดยMyproject ---> ทรัพยากร java ----> ไลบรารี -> J RE System Libraries [java-1.6]คลิกที่นี่เพื่อไปที่ " คุณสมบัติ " เลือก"Classpath Container"เปลี่ยนสภาพแวดล้อมการดำเนินการเป็น java- 1.8 (jdk1.8.0-35) (ซึ่งล่าสุด )

เปลี่ยน jdk เป็นล่าสุด


4

Project Facet-> Java ควรจับคู่สิ่งที่คุณมีใน pom.xml สำหรับแหล่งที่มาและเป้าหมายของ maven-compiler-plugin ซึ่งสมบูรณ์แบบ แต่ถ้าคุณไม่มีที่นี่แล้วคุณสามารถแก้ไขได้โดยจับคู่ Java คอมไพเลอร์เวอร์ชัน ใน Porject-Facets จากการตั้งค่า: Eclispe-> Preferences-> Java-> Compiler



3

คลิกขวาที่โครงการและเลือกคุณสมบัติคลิกที่คอมไพเลอร์ java จากทางซ้ายและเปลี่ยนเป็นเวอร์ชันที่คุณต้องการหวังว่านี่จะช่วยได้


2

ใน Eclipse คลิกขวาที่โปรเจ็กต์ของคุณไปที่ Maven> อัพเดต projetc รอและข้อผิดพลาดจะหายไป มีการกำหนดค่าเวอร์ชัน Java อย่างถูกต้องสำหรับโครงการนี้แล้ว

ป้อนคำอธิบายรูปภาพที่นี่


1

หากใช้ eclipse

ภายใต้การตั้งค่าคลิกที่ 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>

เปลี่ยนรุ่นเป็นรุ่นที่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.