Trang chủHướng dẫnHướng dẫn khắc phục lỗi không tương thích Java compiler level và Project Facet trong Eclipse
Java

Hướng dẫn khắc phục lỗi không tương thích Java compiler level và Project Facet trong Eclipse

CyStack blog 3 phút để đọc
CyStack blog07/10/2025
Locker Avatar

Bao Tran

Web Developer

Locker logo social
Reading Time: 3 minutes

Hôm nay, tôi muốn chia sẻ về một trong những vấn đề như vậy mà tôi đã gặp phải gần đây khi làm việc với một dự án Maven trong Eclipse. Cụ thể, sau khi tôi nhập một dự án và thay đổi Build Path Library sang Java 1.7, Eclipse bỗng hiển thị lỗi cho toàn bộ dự án, dù không có bất kỳ dòng code nào báo lỗi trong các file. Đây là một tình huống khá phổ biến và gây bối rối cho nhiều lập trình viên.

khắc phục lỗi không tương thích Java compiler level

Nguồn gốc của vấn đề: Java compiler level does not match the version of the installed Java project facet

Sau khi tôi thay đổi Build Path Library sang Java 1.7 cho dự án Maven của mình trong Eclipse, một lỗi bất ngờ đã xuất hiện trong cửa sổ Problem View: Java compiler level does not match the version of the installed Java project facet

khắc phục lỗi không tương thích Java compiler level

Điều này có nghĩa là cấp độ trình biên dịch Java mà dự án của bạn đang sử dụng không khớp với phiên bản Java Project Facet đã cài đặt..

Khắc phục lỗi Java Project Facet

Sau khi tìm hiểu và xem xét kỹ lưỡng các thuộc tính của dự án, tôi đã tìm ra giải pháp. Điều duy nhất cần làm là thay đổi phiên bản Java Project Facet từ 1.5 sang 1.7. Bạn có thể thực hiện việc này thông qua giao diện người dùng (UI) bằng cách truy cập Project Properties và điều chỉnh phiên bản Facet tại đó.

khắc phục lỗi không tương thích Java compiler level

Tuy nhiên, với tôi, một người luôn ưu tiên sự kiểm soát tuyệt đối và muốn làm việc qua cấu hình file, tôi đã chọn cách chỉnh sửa trực tiếp. Eclipse lưu trữ thông tin cấu hình của project facets trong file org.eclipse.wst.common.project.facet.core.xml. File này nằm trong thư mục .settings ở thư mục gốc của dự án của bạn.

Nội dung ban đầu của file này trông như thế này:

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="jst.web" version="2.3"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="java" version="1.5"/>
</faceted-project>

Bạn có thể thấy rõ dòng <installed facet="java" version="1.5"/>. Đây chính là thủ phạm! Tôi đã sửa đổi nó thành 1.7 như sau:

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="jst.web" version="2.3"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="java" version="1.7"/>
</faceted-project>

Sau khi tôi thực hiện thay đổi này và làm mới (refresh) dự án trong Eclipse (bằng cách nhấp chuột phải vào dự án và chọn Refresh hoặc nhấn F5), lỗi đã biến mất hoàn toàn.

Mẹo bổ sung

Nếu bạn muốn điều chỉnh mức độ tương thích của trình biên dịch (compiler compliance level) qua terminal hoặc trực tiếp qua file, bạn cần chỉnh sửa các thuộc tính sau trong file org.eclipse.jdt.core.prefs. File này cũng nằm trong thư mục .settings của dự án.

org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.source=1.7

Bạn chỉ cần đảm bảo rằng các giá trị này phản ánh phiên bản Java bạn mong muốn.

Mặc dù bạn cũng có thể thay đổi thư viện trong file .classpath của dự án, nhưng việc này phức tạp hơn và phụ thuộc vào cách cấu hình tên thư viện. File .classpath định nghĩa các đường dẫn lớp (classpath entries) cho dự án của bạn. Ví dụ, trong file .classpath của dự án tôi, mục nhập cho JRE trông như sau:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Home">
	<attributes>
		<attribute name="owner.project.facets" value="java"/>
	</attributes>
</classpathentry>

Kết luận

Chúng ta đã cùng nhau khám phá nguyên nhân và giải pháp cho lỗi Java compiler level does not match the version of the installed Java project facet thường gặp trong Eclipse. Bạn đã học được rằng vấn đề này phát sinh do sự không khớp giữa phiên bản trình biên dịch Java mà bạn thiết lập và phiên bản Java Project Facet mà dự án của bạn đang sử dụng.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất