Kelas telah dikompilasi oleh versi Java Environment yang lebih baru

93

Saat menjalankan skrip selenium, saya mendapatkan pesan kesalahan berikut di konsol Eclipse:

Kelas telah dikompilasi oleh versi Java Environment yang lebih baru (file kelas versi 53.0), versi Java Runtime ini hanya mengenali versi file kelas hingga 52.0.


  • Versi Java: 8
  • IDE: Eclipse Oxygen
  • Versi Firefox: 46
pengguna5218071
sumber
6
class file version 53 = Java 9. Java 8 JVM Anda tidak dapat menjalankan kode Java 9.
melolong

Jawaban:

128

Ini hanya ketidakcocokan versi. Anda telah mengkompilasi kode Anda menggunakan java versi 9 dan JRE Anda saat ini adalah versi 8. Coba tingkatkan JRE Anda ke 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
Nithin
sumber
24
memberikan saran tentang pilihan logis mungkin bukan solusi yang baik sama sekali ... bagaimana jika proyek dijalankan dengan jre-8 di tempat pertama dan seseorang secara tidak sengaja menyusun beberapa modul terhadap 9?
Eugene
Saya percaya peningkatan masih tidak akan menimbulkan masalah karena tidak akan ada masalah kompatibilitas ke belakang. Dan itu logis karena saya yakin kompiler telah diupgrade ke versi terbaru.
Nithin
10
Anda berpikir dalam kerangka proyek kotak pasir kecil; untuk proyek perusahaan - ini bukanlah perubahan yang mudah. Misalnya beberapa bug telah diperbaiki di 8 untuk obat generik yang Anda andalkan pada efek sampingnya di 7; atau HashMapurutan telah berubah dari 7 menjadi 8 ... dll. Saya telah menghadapi ini. Cukup mengatakan - pindah ke 9 adalah pilihan yang baik, tetapi tidak pernah yang sederhana dan cepat
Eugene
jika Anda menyatakan dalam hal tingkat proyek perusahaan, ya Anda benar dan saya sangat setuju dengan hal itu. Peningkatan / penurunan tidak pernah menjadi pilihan yang paling layak dalam skenario seperti itu.
Nithin
@nithinpankaj Pada dasarnya setiap kali saya mencoba menggunakan Java 9, beberapa kesalahan baru muncul. Tanpa alasan untuk meningkatkan, saya telah berhenti mencoba, dan memiliki pendapat yang agak buruk tentang Java 9.
Erhannis
41

IDE: Eclipse Oxygen.3

Untuk sementara memperbaiki masalah lakukan hal berikut:

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

Perbaikan permanen kemungkinan besar melibatkan penginstalan JDK 9.

FYI 1.8 adalah sebutan Java 8.

Bilah samping

Saya baru-baru ini kembali ke Java setelah terjun ke C # (menghirup udara segar) dan memasang Eclipse Oxygen ke sistem bersih yang belum pernah menginstal Java sebelumnya. Ini default semuanya dengan pemasangan baru Eclipse Oxygen namun entah bagaimana atau Eclipse lain tidak bisa mendapatkan parameternya sendiri untuk mencocokkan jdk yang diinstal. Ini adalah proyek kedua yang saya buat dan kedua kalinya saya mengalami sakit kepala ini. Saatnya kembali ke C #?

Pertanyaan Terkait

telah dikompilasi oleh versi Java Runtime yang lebih baru (file kelas versi 53.0)

Eric D
sumber
menarik. Jadi apakah itu berarti bahwa bytecode TIDAK kompatibel ke depan?
toto '30
12

Anda bisa mencoba cara ini

javac --release 8 yourClass.java
Krishna Santosh Nidri
sumber
6

53singkatan dari java-9, jadi itu berarti bahwa kelas apa pun yang telah Anda kompilasi javac-9dan Anda coba menjalankannya jre-8. Kompilasi ulang kelas itu dengan javac-8atau gunakan jre-9

Eugene
sumber
2

Saya menulis ini karena saya menemukan jawaban lain sulit untuk dipahami.

Pada dasarnya JRE Anda tidak diperbarui dan / atau Eclipse tidak dikonfigurasi untuk menggunakan JRE terbaru.

Pada Windows, buka Control Panel -> Program -> Java -> update dan lanjutkan untuk memperbarui java

atau jika Anda tidak memiliki Java, buka situs web Oracle dan unduh JRE terbaru.

Setelah ini selesai, masuk ke eclipse, dan di bawah tampilan proyek, klik kanan pada proyek Anda, pilih Java Build Path, klik dua kali pada JRE System Library, lalu Pilih Workspace Default JRE 14.1.

Jika versi Java terbaru tidak muncul di sini, mungkin Java belum diinstal. Periksa versi JRE (BUKAN JDK) Anda dan pastikan versi terbaru. Jika ya, coba mulai ulang komputer, lalu coba lagi.

Jacob Waters
sumber
0

Pergi ke bagian Proyek, klik pada properti> kemudian ke kompiler Java> periksa tingkat kepatuhan kompiler 1.8, atau seharusnya tidak ada peringatan kuning di bagian bawah

ARVIND 1994
sumber
0

Menyegarkan dependensi gradle berfungsi untuk saya: Klik kanan pada proyek -> Gradle -> Refresh Gradle Project.

Carlos Casallas
sumber
0

Saya memiliki masalah serupa dari konsol setelah membangun Jar di Intellij. Menggunakan konfigurasi Java untuk memperbarui ke versi yang lebih baru (Windows -> Konfigurasi Java -> Perbarui -> Perbarui Sekarang) tidak berfungsi dan macet di versi 1.8 (Java 8).

Untuk beralih ke versi yang lebih baru secara lokal, saya harus menginstal Java 15 JDK dari https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html dan menambahkannya ke pengaturan Java runtime environment saya.

Pengaturan Java Runtime Environment

Sungguh
sumber
-1

Untuk solusi sementara cukup klik kanan pada Project => Properties => Java compiler => di sana silakan pilih tingkat kepatuhan compiler 1.8 => .kelas kompatibilitas 1.8 => kompatibilitas sumber 1.8 .

Kemudian kode Anda akan mulai dijalankan pada versi 1.8 .

Terima kasih dan Salam, Akshay kenjale.

akshay kenjale
sumber