जावा पर्यावरण के अधिक हालिया संस्करण द्वारा कक्षा को संकलित किया गया है


87

सेलेनियम स्क्रिप्ट चलाने के दौरान, मुझे ग्रहण कंसोल में निम्न त्रुटि संदेश मिल रहा है:

जावा पर्यावरण के अधिक हालिया संस्करण (वर्ग फ़ाइल संस्करण 53.0) द्वारा कक्षा को संकलित किया गया है, जावा रनटाइम का यह संस्करण केवल 52.0 तक के वर्ग फ़ाइल संस्करणों को पहचानता है।


  • जावा संस्करण: 8
  • आईडीई: Eclipse Oxygen
  • फ़ायरफ़ॉक्स संस्करण: 46

6
वर्ग फ़ाइल संस्करण 53 = जावा 9. आपका जावा 8 जेवीएम जावा 9 कोड को निष्पादित नहीं कर सकता है।
हॉवेलर

जवाबों:


111

यह सिर्फ एक संस्करण बेमेल है। आपने जावा कोड 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 के खिलाफ कुछ मॉड्यूल संकलित किया हो?
यूजीन

मेरा मानना ​​है कि उन्नयन अभी भी किसी भी परेशानी का कारण नहीं होगा क्योंकि कोई भी पिछड़े संगतता मुद्दे नहीं होंगे। और यह तर्कसंगत था क्योंकि मेरा मानना ​​है कि कंपाइलर को नवीनतम संस्करण में अपग्रेड किया गया है।
नितिन

9
आप एक छोटे, सैंडबॉक्स प्रोजेक्ट के संदर्भ में सोच रहे हैं; उद्यम परियोजनाओं के लिए - यह एक आसान बदलाव नहीं है। उदाहरण के लिए कुछ बग्स को जेनेरिक में 8 के लिए तय किया गया था जो आप 7 में उनके दुष्प्रभावों पर निर्भर थे; या HashMapआदेश 7 से 8 तक बदल गया है ... आदि मैंने इसका सामना किया है। सीधे शब्दों में कहे तो - 9 की चाल एक अच्छा विकल्प है, लेकिन कभी भी एक सरल और तेज़ एक नहीं है
यूजीन

यदि आप एंटरप्राइज़ प्रोजेक्ट स्तरों के संदर्भ में कह रहे हैं, तो आप सही हैं और मैं उस बिंदु से दृढ़ता से सहमत हूं। उन्नयन / डाउनग्रेडिंग इस तरह के परिदृश्यों में सबसे व्यवहार्य विकल्प नहीं है।
नितिन

@nithinpankaj अनिवार्य रूप से हर बार मैंने जावा 9 का उपयोग करने की कोशिश की है, कुछ नई त्रुटि डाली गई है। अपग्रेड करने का कोई कारण नहीं होने के कारण, मैंने कोशिश करना बंद कर दिया है, और जावा 9 की ख़राब राय है।
एरहानिस

37

आईडीई: ग्रहण ऑक्सीजन ।3

समस्या को अस्थायी रूप से ठीक करने के लिए निम्नलिखित कार्य करें:

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

एक स्थायी फिक्स संभावना में JDK 9 को स्थापित करना शामिल है।

FYI 1.8 को जावा 8 कहा जाता है।

साइड बार

मैं हाल ही में जावा में सी # (ताज़ी हवा की एक सांस) के बाद वापस लौटा और एक स्वच्छ प्रणाली पर एक्लिप्स ऑक्सीजन स्थापित किया जो पहले कभी जावा पर स्थापित नहीं था। यह किसी भी तरह से या किसी अन्य ग्रहण के ग्रहण ऑक्सीजन के एक नए इंस्टॉलेशन के साथ डिफ़ॉल्ट रूप से सब कुछ है , जो कि इंस्टॉल किए गए jdk से मेल खाने के लिए अपने स्वयं के मापदंडों को प्राप्त नहीं कर सकता है। यह दूसरी परियोजना है जिसे मैंने बनाया और दूसरी बार जब मैं इस सिरदर्द में भाग गया। C # पर वापस जाने का समय?

संबंधित प्रश्न

जावा रनटाइम (क्लास फ़ाइल संस्करण 53.0) के अधिक हाल के संस्करण द्वारा संकलित किया गया है


दिलचस्प। तो क्या इसका मतलब यह है कि बायटेकोड संगत नहीं है?
टोटो '


6

53जावा -9 के लिए खड़ा है, तो इसका मतलब है कि जो भी वर्ग आपके साथ संकलित किया गया है javac-9और आप इसे चलाने की कोशिश करते हैं jre-8। या तो उस कक्षा को फिर से संकलित javac-8करें या jre-9 का उपयोग करें


1

यह मैं इसलिए लिख रहा हूं क्योंकि मुझे समझने के लिए अन्य उत्तर कठिन लगे।

अनिवार्य रूप से आपका JRE अपडेट नहीं है और / या Eclipse सबसे हाल के JRE का उपयोग करने के लिए कॉन्फ़िगर नहीं किया गया है।

विंडोज पर, कंट्रोल पैनल पर जाएं -> प्रोग्राम -> जावा -> अपडेट करें और जावा को अपडेट करने के लिए आगे बढ़ें

या यदि आपके पास जावा नहीं है, तो Oracle की वेबसाइट पर जाएं और सबसे हाल ही में JRE डाउनलोड करें।

एक बार यह हो जाने के बाद, ग्रहण में जाएं, और प्रोजेक्ट दृश्य के तहत, अपनी परियोजना पर राइट क्लिक करें, जावा बिल्ड पाथ चुनें, JRE सिस्टम लाइब्रेरी पर डबल क्लिक करें, फिर कार्यक्षेत्र डिफ़ॉल्ट JRE 14.1 चुनें।

यदि जावा का हालिया संस्करण यहां नहीं दिखा, तो यह संभवत: स्थापित नहीं है। आपको JRE (NOT JDK) संस्करण की जाँच करें और सुनिश्चित करें कि यह हाल ही का है। अगर ऐसा है, तो कंप्यूटर को फिर से शुरू करने की कोशिश करें।


0

प्रोजेक्ट सेक्शन पर जाएँ, गुणों पर क्लिक करें> फिर Java कंपाइलर> चेक कंपाइलर कंप्लायंस लेवल 1.8 पर है, या नीचे कोई पीला चेतावनी नहीं होनी चाहिए


0

रिफ्रेशिंग ग्रेडल डिपेंडेंसी मेरे लिए काम करती है: प्रोजेक्ट पर राइट क्लिक करें -> ग्रैडल -> ग्रेडेड प्रोजेक्ट को रिफ्रेश करें।


0

Intellij में Jar बनाने के बाद कंसोल से मेरा एक समान मुद्दा था। एक नए संस्करण में अपडेट करने के लिए जावा कॉन्फ़िगरेशन का उपयोग करना (विंडोज -> जावा कॉन्फ़िगर करें -> अपडेट -> अपडेट अब) काम नहीं किया और संस्करण 1.8 (जावा 8) पर अटक गया।

स्थानीय स्तर पर अधिक हाल के संस्करण पर स्विच करने के लिए मुझे https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html से जावा 15 JDK इंस्टॉल करना था और इसे अपने जावा रनटाइम वातावरण सेटिंग्स में जोड़ना होगा।

जावा रनटाइम पर्यावरण सेटिंग्स


-1

अस्थायी समाधान के लिए अभी प्रोजेक्ट => गुण => जावा कंपाइलर => पर क्लिक करें। कंपाइलर कंप्लायंस स्तर 1.8 => .class संगतता 1.8 => स्रोत संगतता 1.8 का चयन करें

फिर आपका कोड 1.8 संस्करण पर अमल करना शुरू कर देगा ।

धन्यवाद और सादर, अक्षय कींजले

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.