Saya mendapatkan kesalahan ini ketika saya menyertakan pustaka sumber terbuka yang harus saya kompilasi dari sumber. Sekarang, semua saran di web menunjukkan bahwa kode tersebut dikompilasi dalam satu versi dan dieksekusi di versi lain (baru lama). Namun, saya hanya memiliki satu versi JRE di sistem saya. Jika saya menjalankan perintah:
$ javac -version
javac 1.5.0_18
$ java -version
java version "1.5.0_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode)
dan periksa di Eclipse untuk properti perpustakaan java, saya dapatkan 1.5.0_18
Oleh karena itu, saya harus menyimpulkan sesuatu yang lain, internal ke kelas itu sendiri, melempar pengecualian ?? Apakah itu mungkin?
Jawaban:
Saya telah belajar bahwa pesan kesalahan seperti ini biasanya benar. Ketika itu tidak MUNGKIN (dalam pikiran Anda) seperti yang dikatakan kesalahan, Anda mencari masalah di area lain ... hanya untuk mengetahui beberapa jam kemudian bahwa pesan kesalahan asli memang benar.
Karena Anda menggunakan Eclipse, saya pikir Thilo benar. Alasan paling mungkin Anda mendapatkan pesan ini adalah karena salah satu proyek Anda sedang menyusun 1,6 kelas. Tidak masalah jika Anda hanya memiliki 1,5 JRE pada sistem, karena Eclipse memiliki kompiler sendiri (bukan javac), dan hanya membutuhkan 1,5 JRE untuk mengkompilasi 1,6 kelas. Mungkin aneh, dan pengaturan perlu dicentang untuk memungkinkan ini, tapi saya hanya berhasil melakukannya.
Untuk proyek yang dimaksud, periksa Properti Proyek (biasanya Alt + Enter), bagian Java Compiler. Berikut adalah gambar proyek yang dikonfigurasikan untuk mengkompilasi 1.6, tetapi hanya dengan 1,5 JRE.
sumber
Sudahkah Anda mencoba melakukan "bersih" penuh dan kemudian membangun kembali di Eclipse (Project-> Clean ...)?
Apakah Anda dapat mengkompilasi dan menjalankan dengan "javac" dan "java" langsung dari baris perintah? Apakah itu berfungsi dengan baik?
Jika Anda mengklik kanan pada proyek Anda, pergi ke "Properties" dan kemudian pergi ke "Java Build Path", apakah ada entri yang mencurigakan di bawah salah satu tab? Ini pada dasarnya adalah CLASSPATH Anda.
Di preferensi Eclipse, Anda mungkin juga ingin memeriksa ulang bagian "Installed JREs" di bagian "Java" dan pastikan cocok dengan apa yang Anda pikir seharusnya.
Anda pasti memiliki file .class basi yang terletak di suatu tempat atau Anda mendapatkan ketidakcocokan waktu kompilasi / run-time dalam versi Java yang Anda gunakan.
sumber
Apakah Anda mengkompilasi dengan Eclipse? Ini menggunakan kompiler yang berbeda (bukan javac). Seharusnya tidak menghasilkan kesalahan ini (jika semuanya dikonfigurasi dengan benar), tetapi Anda dapat mencoba untuk mengkompilasinya dengan javac sebagai gantinya.
Jika itu memperbaiki masalah, cobalah untuk melihat apakah Eclipse memiliki beberapa pengaturan kompiler yang salah. Secara khusus memilikinya menargetkan Java 5.
sumber
Saya juga mendapat kesalahan yang sama. Alasan untuk itu saya mengkompilasi proyek menggunakan Maven. Saya punya JAVA_HOME menunjuk ke JDK7 dan karenanya java 1.7 sedang digunakan untuk kompilasi dan ketika menjalankan proyek saya menggunakan JDK1.5. Mengubah entri di bawah ini dalam file .classpath atau mengubah gerhana seperti pada tangkapan layar menyelesaikan masalah.
atau ubah dalam menjalankan configuarions eclipse as
sumber
Juga periksa semua file jar di proyek Anda yang telah dikompilasi untuk versi Java yang lebih tinggi. Jika ini adalah perpustakaan Anda sendiri, Anda bisa memperbaikinya dengan mengubah atribut versi target ke javac
sumber
Skenario lain di mana ini bisa terjadi adalah ketika Anda meluncurkan instance gerhana (untuk debug dll) dari gerhana host - dalam hal ini, mengubah tingkat proyek atau JRE perpustakaan di classpath proyek saja tidak membantu. Yang penting adalah JRE yang digunakan untuk meluncurkan lingkungan gerhana target.
sumber
Selalu periksa juga yang jelas. Saya mendapatkan kesalahan ini satu kali ketika saya secara tidak sengaja mengambil sumber daya yang salah untuk tindakan menambah dan menghapus server. Mudah untuk dilupakan.
sumber
Menghapus file pengaturan khusus proyek (Eclipse workspace / folder proyek / .settings /) dari folder proyek juga akan dilakukan. Jelas, kita perlu melakukan pembersihan dan pembangunan proyek setelah dihapus.
sumber
mengubah proyek untuk menggunakan java 1.7: Agar ini berfungsi ikuti langkah-langkah berikut:
Tidak bekerja
Masih tidak bekerja?
di direktori proyek Anda: edit .settings / org.eclipse.jdt.core.prefs> pastikan level target Anda diterapkan
Semoga berhasil!
sumber
saya memecahkan masalah ini dengan mengubah jre yang diperlukan untuk server (dalam kasus saya adalah kucing jantan). Dari tab Server dalam gerhana, klik dua kali pada server (untuk membuka halaman untuk konfigurasi server), klik pada lingkungan Runtime, lalu ubah JRE diperlukan
sumber