Mức trình biên dịch Java không khớp với phiên bản của khía cạnh dự án Java đã cài đặt


202

Tôi đã tạo một Dự án động mới trong Phiên bản Helios của Eclipse, trong đó Phiên bản JRE của tôi được đặt thành 1.6. Tôi đã thêm các khả năng Maven vào Ứng dụng Web bằng cách nhấp vào Cấu hìnhChuyển đổi sang Dự án Maven .

Sau khi thêm điều này, một lỗi xây dựng đã xuất hiện trong khung nhìn Các vấn đề của Eclipse:

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

Vui lòng cho tôi biết cách khắc phục lỗi này (tôi muốn có phiên bản JRE của mình là 1.6).


Câu trả lời của Bigleftie phục vụ tôi tốt cho một dự án không phải Maven.
Jack Mason

Người dùng nhật thực có thể đọc bài này trên tạp chí journaldev.com/3334/
Ahmad Nadeem

Câu trả lời:


166

Giả sử rằng bạn đang sử dụng plugin m2e trong Eclipse, bạn sẽ cần chỉ định các phiên bản sourcetarget1.6 là maven-compiler-plugin. m2e sử dụng các giá trị này để xác định mức trình biên dịch Java của dự án. Một đoạn của POM được hiển thị dưới đây:

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

Ngoài ra, bạn có thể chỉ định các thuộc tính maven.compiler.sourcemaven.compiler.targetcác giá trị là 1.6, tương đương với:

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

60
Bạn có thể làm điều đó: - Nhấp chuột phải vào dự án của bạn - Nhấp vào Thuộc tính - Nhấp vào tùy chọn "Khuôn mặt dự án" trên menu bên trái - Trong phần Facets "Java" ở bên phải, thay đổi thành "1.6", "1.7" hoặc của bạn phiên bản ... - Nhấp Ok
Thiago Pereira

3
@ThiagoPereira Bạn mất những thay đổi đó khi bạn nhập lại vào một không gian làm việc khác. Tìm hiểu làm thế nào m2e hoạt động.
Vineet Reynold

Người dùng nhật thực có thể đọc journaldev.com/3334/ khăn
Ahmad Nadeem

400

Nếu dự án của bạn không phải là dự án Maven, nhấp chuột phải vào dự án của bạn và chọn Thuộc tính để mở hộp thoại Thuộc tính dự án.

Có một mục Project Facets ở bên trái, chọn nó, tìm khía cạnh Java trong danh sách, chọn phiên bản bạn muốn sử dụng cho dự án và áp dụng.

Các yếu tố dự án - Phiên bản Java


19
Project Facet-> Java phải khớp với bất cứ thứ gì bạn có trong pom.xml cho nguồn và mục tiêu giả tạo của trình biên dịch maven-Trình biên dịch-plugin.
Arye Rosenstein

4
Nguyên nhân sâu xa của vấn đề này phải là câu trả lời được cung cấp bởi @VineetReynold
Jerry Tian

4
Tôi gặp vấn đề này và có vẻ như đó là sự cố maven, nhưng tôi không sử dụng maven, tôi không có tệp POM và tôi thậm chí không chắc mình có plugin maven. Tuy nhiên, tôi nhận được lỗi tương tự; nhật thực của tôi được thiết lập để sử dụng java 1.7 nhưng trang khía cạnh của dự án của tôi sẽ chỉ cho phép tôi chọn 1.6. Tôi đang làm gì sai?
rjcarr

7
Bốn điều phải khớp với 1) Project-> Java Build Path-> Thư viện-> JRE phiên bản 2) Project-> Trình biên dịch Java-> Trình biên dịch tuân thủ cấp 3) Project-> Project Facets-> Java-> Phiên bản 4) (nếu sử dụng Maven ) pom.xml - nguồn và mục tiêu giả tạo của trình biên dịch maven-trình biên dịch
bigleftie

1
Tôi thứ hai @TK Gospodinov trả lời. pom của tôi đã được cập nhật với phiên bản Java nhưng khía cạnh dự án là thủ phạm.
Soman Dubey

17

Câu trả lời của TK Gospodinov là chính xác ngay cả đối với các dự án maven. Cẩn thận: Tôi sử dụng Maven. Các pom đã chính xác và vẫn còn vấn đề này. Tôi đã đi đến "Các khía cạnh dự án" và thực sự đã loại bỏ lựa chọn Java đang trỏ đến 1.6 nhưng dự án của tôi đang sử dụng 1.7. Ở bên phải trong tab "Runtimes" tôi phải kiểm tra tùy chọn jdk1.7. Không có gì xuất hiện ở bên trái ngay cả sau khi tôi nhấn "Áp dụng". Vấn đề đã biến mất mặc dù đó là lý do tại sao tôi vẫn nghĩ rằng câu trả lời này là quan trọng của vấn đề liên quan đến "Các khía cạnh dự án" cụ thể. Sau khi bạn nhấn OK nếu bạn quay lại "Các khía cạnh dự án", bạn sẽ thấy Java hiển thị dưới dạng phiên bản 1.7, vì vậy bây giờ bạn có thể chọn nó để đảm bảo dự án được "đánh dấu" là một dự án Java. Tôi cũng cần nhấp chuột phải vào dự án và chọn Maven | Cập nhật dự án.


6

Tôi đã giải quyết vấn đề này bằng cách đặt phiên bản java trong thuộc tính Project Facet của thuộc tính dự án, Nhấp chuột phải vào thư mục gốc của dự án -> Thuộc tính, tìm kiếm Project Facets và chọn phiên bản java tương thích.

Để tham khảo -

nhập mô tả hình ảnh ở đây


5

Tôi đã thay đổi cấu hình bên trong workspace/project/.setting/org.eclipse.wst.common.project.facet.corethành:

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

Trước khi thay đổi cấu hình, loại bỏ dự án khỏi IDE. Điều này làm việc cho tôi.


chỉ cần loại bỏ dự án khỏi nhật thực và nhập lại đã khắc phục sự cố.
Mohammad Faisal

5

Tôi giải quyết nó bằng cách myproject ---> java Resource ----> thư viện -> J RE Hệ thống thư viện [java-1.6] click vào đi này để "nó sở hữu " chọn "Classpath Container" thay đổi môi trường thực hiện để Java- 1.8 (jdk1.8.0-35) ( mới nhất )

Thay đổi jdk thành mới nhất


4

Project Facet-> Java phải khớp với bất cứ thứ gì bạn có trong pom.xml cho nguồn và đích của trình tạo maven-Trình biên dịch-plugin. Điều này là hoàn hảo. Nhưng nếu bạn không có nó ở đây thì bạn cũng có thể sửa nó bằng cách khớp phiên bản trình biên dịch Java trong porject-Facets từ cài đặt: Eclispe-> Preferences-> Java-> Compiler


4

Bạn có thể thay đổi khía cạnh dự án từ Project -> Properties -> Project Facet -> Java -> {phiên bản JDK bắt buộc}


3

Nhấp chuột phải vào dự án và chọn thuộc tính Nhấp vào trình biên dịch java từ bên trái và thay đổi thành phiên bản bắt buộc của bạn Hy vọng điều này sẽ giúp


2

Trong Eclipse, nhấp chuột phải vào dự án của bạn, đi đến Maven> Cập nhật projetc. Đợi và lỗi sẽ biến mất. Đây đã được cấu hình đúng phiên bản Java cho dự án này.

nhập mô tả hình ảnh ở đây


1

Nếu sử dụng nhật thực,

Under.sinstall nhấp vào 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>

Thay đổi phiên bản thành phiên bản chính xác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.