Solve: Class file has wrong version
bad class file: ./com/****/***/example/session/utility/MFEncoder.class
class file has wrong version 49.0, should be 48.0
ปัญหานี้เกิดขึ้นเมื่อใช้คำสั่ง Compile file สาเหตุเกิดจาก ไฟล์ที่เรากำลังจะ compile นั้น มีการใช้ class ซึ่ง compile ด้วย java version อื่นอยู่ (bad class file) จากตัวอย่าง ผม Compile ไฟล์ชื่อ MDSubDemo.java แต่เนื่องจาก ผมเพิ่งเปลี่ยน Compiler จาก JDK5.0 เป็น 1.4 ก็เลยเกิดปัญหานี้ขึ้น เพราะว่ามันมี file .class ที่อื่น ที่มัน compile ไว้แล้วด้วย JDK5.0 แล้วไม่ได้ถูกลบทิ้งไป ผลจึงทำให้ compile ไฟล์ไม่สำเร็จ
วิธีการแก้ปัญหาก็คือ ลบไฟล์ .class ที่ระบุอยู่ใน bad class file ทิ้ง ก็เป็นอันใช้ได้แล้ว.
ในตัวอย่าง 49.0 เป็น version ของ JDK5.0 ส่วน 48.0 เป็น JDK1.4 สรุป มันกำลังบอกว่า คลาสไฟล์ผิดเวอร์ชั่น มันควรจะเป็นเวอร์ชั่น 48 นั่นเอง
Facebook comments: