Lớp đã được biên dịch bởi một phiên bản mới hơn của Môi trường Java


87

Trong khi chạy tập lệnh selenium, tôi nhận được thông báo lỗi sau trong bảng điều khiển Eclipse:

Lớp đã được biên dịch bởi phiên bản mới hơn của Môi trường Java (tệp lớp phiên bản 53.0), phiên bản Thời gian chạy Java này chỉ nhận dạng các phiên bản tệp lớp lên đến 52.0.


  • Phiên bản Java: 8
  • IDE: Eclipse Oxygen
  • Phiên bản Firefox: 46

6
tệp lớp phiên bản 53 = Java 9. JVM Java 8 của bạn không thể thực thi mã Java 9.
howlger

Câu trả lời:


111

Đây chỉ là một phiên bản không khớp. Bạn đã biên dịch mã của mình bằng java phiên bản 9 và JRE hiện tại của bạn là phiên bản 8. Hãy thử nâng cấp JRE của bạn lên 9.

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14

24
đưa ra lời khuyên về lựa chọn hợp lý có thể không phải là một giải pháp tốt ... điều gì sẽ xảy ra nếu dự án được chạy với jre-8 ngay từ đầu và ai đó vô tình biên dịch một số mô-đun chống lại 9?
Eugene

Tôi tin rằng việc nâng cấp vẫn sẽ không gây ra bất kỳ sự cố nào vì sẽ không có bất kỳ vấn đề tương thích ngược nào. Và nó là hợp lý vì tôi tin rằng trình biên dịch đã được nâng cấp lên phiên bản mới nhất.
Nithin

10
bạn đang nghĩ về một dự án hộp cát nhỏ; đối với các dự án doanh nghiệp - đây không bao giờ là một sự thay đổi dễ dàng. Ví dụ, một số lỗi đã được sửa ở 8 đối với thuốc chung mà bạn đang dựa vào tác dụng phụ của chúng trong 7; hoặc HashMapđơn hàng đã thay đổi từ 7 thành 8 ... vv Tôi đã phải đối mặt với điều này. Đơn giản chỉ cần nói đến - di chuyển đến 9 là một lựa chọn tốt, nhưng không bao giờ đơn giản và nhanh chóng một
Eugene

nếu bạn đang nói về cấp độ dự án doanh nghiệp, thì bạn đúng và tôi hoàn toàn đồng ý với điểm đó. Nâng cấp / hạ cấp không bao giờ là một lựa chọn khả thi nhất trong các tình huống như vậy.
Nithin

@nithinpankaj Về cơ bản mỗi khi tôi cố gắng sử dụng Java 9, một số lỗi mới đã xảy ra. Không có lý do gì để nâng cấp, tôi đã ngừng cố gắng và có quan điểm khá kém về Java 9.
Erhannis

37

IDE: Eclipse Oxygen.3

Để tạm thời khắc phục sự cố, hãy làm như sau:

Project menu> Properties> Java Compiler> Compiler compliance level>1.8

Một bản sửa lỗi vĩnh viễn có thể liên quan đến việc cài đặt JDK 9.

FYI 1.8 là tên gọi của Java 8.

Thanh bên

Gần đây tôi đã quay trở lại Java sau khi bước vào C # (một luồng không khí trong lành) và cài đặt Eclipse Oxygen vào một hệ thống sạch chưa từng cài đặt Java trên đó trước đây. Mọi thứ mặc định này với bản cài đặt Eclipse Oxygen hoàn toàn mới nhưng bằng cách nào đó hoặc Eclipse khác không thể lấy các thông số riêng của nó để khớp với jdk đã được cài đặt. Đây là dự án thứ hai tôi tạo và là lần thứ hai tôi gặp phải vấn đề đau đầu này. Đã đến lúc quay lại C #?

Câu hỏi liên quan

đã được biên dịch bởi phiên bản Java Runtime mới hơn (tệp lớp phiên bản 53.0)


hấp dẫn. Vì vậy, nó có nghĩa là bytecode KHÔNG tương thích chuyển tiếp?
toto '


6

53là viết tắt của java-9, vì vậy nó có nghĩa là bất kỳ lớp nào bạn đã được biên dịch javac-9và bạn cố gắng chạy nó với jre-8. Biên dịch lại lớp đó bằng javac-8hoặc sử dụng jre-9


1

Tôi viết bài này vì tôi thấy các câu trả lời khác khó hiểu.

Về cơ bản JRE của bạn không được cập nhật và / hoặc Eclipse không được định cấu hình để sử dụng JRE mới nhất.

Trên Windows, vào Control Panel -> Programs -> Java -> update và tiến hành cập nhật java

hoặc nếu bạn không có Java, hãy truy cập trang web của Oracle và tải xuống JRE mới nhất.

Khi việc này được thực hiện xong, hãy vào eclipse và dưới dạng xem dự án, nhấp chuột phải vào dự án của bạn, chọn Java Build Path, nhấp đúp vào Thư viện Hệ thống JRE, sau đó Chọn Không gian làm việc Mặc định JRE 14.1.

Nếu phiên bản Java gần đây không hiển thị ở đây, có thể nó chưa được cài đặt. Kiểm tra phiên bản JRE (KHÔNG PHẢI JDK) của bạn và đảm bảo rằng nó mới đây. Nếu đúng như vậy, hãy thử khởi động lại máy tính rồi thử lại.


0

Chuyển đến phần Dự án, nhấp vào thuộc tính> sau đó đến trình biên dịch Java> kiểm tra mức độ tuân thủ của trình biên dịch là 1.8, hoặc sẽ không có cảnh báo màu vàng ở dưới cùng


0

Làm mới phụ thuộc gradle phù hợp với tôi: Nhấp chuột phải vào dự án -> Gradle -> Làm mới dự án Gradle.


0

Tôi đã gặp sự cố tương tự từ bảng điều khiển sau khi tạo Jar trong Intellij. Sử dụng cấu hình Java để cập nhật lên phiên bản mới hơn (Windows -> Định cấu hình Java -> Cập nhật -> Cập nhật ngay) không hoạt động và bị kẹt ở phiên bản 1.8 (Java 8).

Để chuyển sang phiên bản mới hơn cục bộ, tôi phải cài đặt Java 15 JDK từ https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html và thêm nó vào cài đặt môi trường thời gian chạy Java của tôi.

Cài đặt môi trường thời gian chạy Java


-1

Đối với giải pháp tạm thời bạn chỉ cần nhấp chuột phải vào Project => Properties => Java compiler => ở đó vui lòng chọn mức tuân thủ trình biên dịch 1.8 => tương thích .class 1.8 => tương thích nguồn 1.8 .

Sau đó, mã của bạn sẽ bắt đầu thực thi trên phiên bản 1.8 .

Cảm ơn và Trân trọng, Akshay kenjale.

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.