คลาสได้รับการคอมไพล์โดย Java Environment เวอร์ชันล่าสุด


93

ขณะรันสคริปต์ซีลีเนียมฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ใน Eclipse console:

คลาสได้รับการคอมไพล์โดย Java Environment เวอร์ชันล่าสุด (ไฟล์คลาสเวอร์ชัน 53.0) เวอร์ชัน Java Runtime นี้รู้จักเวอร์ชันไฟล์คลาสสูงสุด 52.0 เท่านั้น


  • เวอร์ชัน Java: 8
  • IDE: Eclipse Oxygen
  • เวอร์ชัน Firefox: 46

6
ไฟล์คลาสเวอร์ชัน 53 = Java 9. Java 8 JVM ของคุณไม่สามารถรันโค้ด Java 9 ได้
howlger

คำตอบ:


128

นี่เป็นเพียงเวอร์ชันที่ไม่ตรงกัน คุณได้รวบรวมโค้ดของคุณโดยใช้ java เวอร์ชัน 9 และ JRE ปัจจุบันของคุณคือเวอร์ชัน 8 ลองอัปเกรด JRE เป็น 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
การให้คำแนะนำเกี่ยวกับตัวเลือกเชิงตรรกะอาจไม่ใช่วิธีแก้ปัญหาที่ดีเลย ... จะเป็นอย่างไรถ้าโครงการนี้ทำงานด้วย jre-8 ตั้งแต่แรกและมีคนรวบรวมโมดูลบางส่วนกับ 9 โดยบังเอิญ
Eugene

ฉันเชื่อว่าการอัปเกรดจะไม่ก่อให้เกิดปัญหาใด ๆ เนื่องจากจะไม่มีปัญหาความเข้ากันได้แบบย้อนหลัง และมันเป็นตรรกะเนื่องจากฉันเชื่อว่าคอมไพเลอร์ได้รับการอัปเกรดเป็นเวอร์ชันล่าสุดแล้ว
นิธิน

10
คุณกำลังคิดในแง่ของโครงการแซนด์บ็อกซ์ขนาดเล็ก สำหรับโครงการระดับองค์กร - นี่ไม่ใช่เรื่องง่ายเลย ตัวอย่างเช่นข้อบกพร่องบางอย่างได้รับการแก้ไขใน 8 สำหรับยาชื่อสามัญที่คุณอาศัยผลข้างเคียงของพวกเขาใน 7; หรือHashMapคำสั่งเปลี่ยนจาก 7 เป็น 8 ... ฯลฯ ฉันต้องเผชิญกับสิ่งนี้ พูดง่ายๆว่า - ย้ายไปที่ 9 เป็นตัวเลือกที่ดี แต่ไม่ใช่ตัวเลือกที่ง่ายและรวดเร็ว
ยูจีน

หากคุณระบุในแง่ของระดับโครงการระดับองค์กรใช่คุณพูดถูกต้องและฉันเห็นด้วยอย่างยิ่งกับประเด็นนั้น การอัปเกรด / ดาวน์เกรดไม่เคยเป็นตัวเลือกที่มีประสิทธิภาพสูงสุดในสถานการณ์เช่นนี้
นิธิน

@nithinpankaj โดยพื้นฐานแล้วทุกครั้งที่ฉันพยายามใช้ Java 9 มีข้อผิดพลาดใหม่เกิดขึ้น โดยไม่มีเหตุผลที่จะอัปเกรดฉันได้หยุดพยายามและมีความคิดเห็นที่ค่อนข้างแย่เกี่ยวกับ Java 9
Erhannis

41

IDE: Eclipse Oxygen 3

ในการแก้ไขปัญหาชั่วคราวให้ทำดังต่อไปนี้:

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

การแก้ไขถาวรอาจเกี่ยวข้องกับการติดตั้ง JDK 9

FYI 1.8 คือสิ่งที่ Java 8 เรียกว่า

แถบด้านข้าง

ฉันเพิ่งกลับไปที่ Java หลังจากโจมตี C # (สูดอากาศบริสุทธิ์) และติดตั้ง Eclipse Oxygen ลงในระบบที่สะอาดซึ่งไม่เคยติดตั้ง Java มาก่อน นี้ทุกอย่างเริ่มต้นด้วยแบรนด์ใหม่ติดตั้ง Eclipse ออกซิเจน แต่อย่างใดหรืออื่น ๆ ที่คราสไม่สามารถได้รับค่าพารามิเตอร์ของตัวเองเพื่อให้ตรงกับ JDK ที่ติดตั้ง นี่เป็นโครงการที่สองที่ฉันสร้างขึ้นและเป็นครั้งที่สองที่ฉันรู้สึกปวดหัว เวลากลับไปที่ C #?

คำถามที่เกี่ยวข้อง

ได้รับการคอมไพล์โดย Java Runtime เวอร์ชันล่าสุด (ไฟล์คลาสเวอร์ชัน 53.0)


น่าสนใจ. หมายความว่า bytecode ไม่สามารถส่งต่อไปข้างหน้าได้หรือไม่?
toto '30


6

53ย่อมาจาก Java-9 ดังนั้นจึงหมายความว่าสิ่งที่คุณได้ระดับได้รับการเรียบเรียงด้วยและคุณพยายามที่จะเรียกมันด้วยjavac-9 jre-8คอมไพล์คลาสนั้นใหม่ด้วยjavac-8หรือใช้ jre-9


2

ฉันเขียนสิ่งนี้เพราะฉันพบว่าคำตอบอื่น ๆ นั้นยากที่จะเข้าใจ

โดยพื้นฐานแล้ว JRE ของคุณไม่ได้รับการอัพเดตและ / หรือ Eclipse ไม่ได้กำหนดค่าให้ใช้ JRE ล่าสุด

ใน Windows ให้ไปที่ Control Panel -> Programs -> Java -> update และดำเนินการอัปเดต java

หรือถ้าคุณไม่มี Java ให้ไปที่เว็บไซต์ของ Oracle และดาวน์โหลด JRE ล่าสุด

เมื่อเสร็จแล้วให้เข้าไปที่ eclipse และในมุมมองโครงการคลิกขวาที่โปรเจ็กต์ของคุณเลือก Java Build Path ดับเบิลคลิกที่ JRE System Library จากนั้นเลือก Workspace Default JRE 14.1

หาก Java เวอร์ชันล่าสุดไม่ปรากฏขึ้นที่นี่แสดงว่าอาจไม่มีการติดตั้ง ตรวจสอบเวอร์ชัน JRE (ไม่ใช่ JDK) ของคุณและตรวจสอบให้แน่ใจว่าเป็นเวอร์ชันล่าสุด หากเป็นเช่นนั้นให้ลองรีสตาร์ทคอมพิวเตอร์แล้วลองอีกครั้ง


0

ไปที่ส่วนโครงการคลิกที่คุณสมบัติ> จากนั้นไปที่คอมไพเลอร์ Java> ตรวจสอบระดับความสอดคล้องของคอมไพลเลอร์คือ 1.8 หรือไม่ควรมีคำเตือนสีเหลืองที่ด้านล่าง


0

การรีเฟรชการอ้างอิง Gradle ใช้ได้ผลกับฉัน: คลิกขวาที่โปรเจ็กต์ -> Gradle -> รีเฟรช Gradle Project


0

ฉันมีปัญหาคล้ายกันนี้จากคอนโซลหลังจากสร้าง Jar ใน Intellij การใช้การกำหนดค่า Java เพื่ออัปเดตเป็นเวอร์ชันที่ใหม่กว่า (Windows -> Configure Java -> Update -> Update Now) ไม่ทำงานและติดขัดที่เวอร์ชัน 1.8 (Java 8)

หากต้องการเปลี่ยนเป็นเวอร์ชันล่าสุดในเครื่องฉันต้องติดตั้ง Java 15 JDK จากhttps://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.htmlและเพิ่มลงในการตั้งค่าสภาพแวดล้อมรันไทม์ Java ของฉัน

การตั้งค่า Java Runtime Environment


-1

สำหรับการแก้ปัญหาชั่วคราวเพียงแค่คลิกขวาที่โครงการ => อสังหาริมทรัพย์ => Java คอมไพเลอร์ => โน่นกรุณาเลือกคอมไพเลอร์ระดับการปฏิบัติตาม 1.8 => .class เข้ากันได้ 1.8 => แหล่งความเข้ากันได้ 1.8

แล้วรหัสของคุณจะเริ่มต้นในการดำเนินการกับรุ่น1.8

ขอขอบคุณและขอแสดงความนับถือ Akshay kenjale

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.