java असमर्थित major.minor संस्करण 52.0




applet version (21)

समस्या को हल करने के लिए आपको बस इतना करना है ... यह सुनिश्चित करने के लिए कि जावा का आपका संस्करण संकलन और चलने दोनों के लिए समान है। कोई फर्क नहीं पड़ता कि आप किस उपकरण या आईडीई का उपयोग कर रहे हैं।

इस प्रश्न का उत्तर यहां दिया गया है:

चित्रों:

कमांड प्रॉम्प्ट संस्करण दिखा रहा है

त्रुटि की तस्वीर

Hello.java

import java.applet.Applet;
import java.awt.*;

public class Hello extends Applet {

    // Java applet to draw "Hello World"
    public void paint (Graphics page) {
        page.drawString ("Hello World!", 50, 50);
    }
}

Hello.html

<HTML>
    <HEAD>
        <TITLE>HelloWorld Applet</TITLE>
    </HEAD>

    <BODY>
        <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
        </APPLET>
    </BODY>
</HTML>

त्रुटि

Hello : Unsupported major.minor version 52.0

समस्या क्या हो सकती है?


ऐसा तब होता है जब आप जावा के higher version (jdk 1.8 कहें) पर अपनी परियोजनाओं को संकलित करते हैं और फिर इसे lower version पर चलाते हैं (jdk 1.7 कहें)।

यदि आपके पास अपने प्रोजेक्ट पथ में जेआरई -77 लाइब्रेरी है, तो,

1. परियोजना पर राइट क्लिक करें

2. गुणों पर जाएं

3. परियोजना पहलुओं का चयन करें

4. जावा में पंक्तियां खोजें और फिर जेआरई -77 का उपयोग करते हुए संस्करण (1.7 कहें) चुनें

5. लागू करें और अपनी परियोजना चलाएं।


आपको अपने आईडीई में अपने कंपाइलर अनुपालन स्तर को 1.7 पर वापस बदलने की आवश्यकता होगी।

यह आपके आईडीई की वरीयता सेटिंग्स में किया जा सकता है। उदाहरण के लिए, ग्रहण में विंडोजप्राथमिकताएं मेनू पर जाएं, जावा का चयन करें और इसे विस्तृत करें। फिर कंपाइलर का चयन करें और अनुपालन स्तर को 1.7 में बदलें। मुझे यकीन है कि यह वहां से काम करेगा।


यह तब हुआ जब मैंने एक नया जावा 1.8 स्थापित किया, लेकिन पुराने कमांड लाइन दुभाषिया को छोड़ दिया।

इसका एक पुराना मार्ग था और जावा 1.7 के साथ एप्लिकेशन को निष्पादित करने पर रखा गया था जबकि परियोजना जावा 1.8 के साथ पहले ही बनाई गई थी।


मैं नीचे दिए गए समाधान का उपयोग कर एक ही समस्या को हल कर सकता हूं।

मेरी परियोजना में, मैंने एक जेएआर फ़ाइल जोड़ा जो जावा 8 में बनाया गया था। और मेरी परियोजना जेआरई 7 का जिक्र कर रही थी। जब मैंने परियोजना जेआरई को 8 में बदल दिया, तो मेरी समस्या हल हो गई।

कदम:

ग्रहण में, प्रोजेक्ट एक्सप्लोरर में प्रोजेक्ट नाम पर राइट क्लिक करें → बिल्ड ग्राफ़ → लाइब्रेरीज़ → जेआरई संस्करण पर क्लिक करेंसंपादित करेंस्थापित जेआरई → → → स्टेंडरड वीएम → जेआरई होम क्लिक-पथ का चयन करें (पथ localePath\java\jdk1.8.0_25\jre होना चाहिए localePath\java\jdk1.8.0_25\jre ) → नाम प्रदान करें → सहेजें → प्रोजेक्ट → समाप्त → ठीक के लिए एक ही localePath\java\jdk1.8.0_25\jre चयन करें। एक बार रीफ्रेश करें / प्रोजेक्ट बनाएं → अपनी जावा फ़ाइल चलाने की कोशिश करें। यह काम करना चाहिए।


मुद्दा जावा संस्करण विसंगति के कारण है। विकिपीडिया जावा क्लास संदर्भ का जिक्र करते हुए:

  • जावा एसई 10 = 54
  • जावा एसई 9 = 53
  • जावा एसई 8 = 52
  • जावा एसई 7 = 51
  • जावा एसई 6.0 = 50
  • जावा एसई 5.0 = 4 9
  • जेडीके 1.4 = 48
  • जेडीके 1.3 = 47
  • जेडीके 1.2 = 46
  • जेडीके 1.1 = 45

ये असाइन किए गए प्रमुख नंबर हैं। असमर्थित major.minor संस्करण के बारे में त्रुटि यह है कि संकलन समय के दौरान आप रनटाइम के दौरान उच्च जेडीके और कम जेडीके का उपयोग कर रहे हैं

इस प्रकार, 'major.minor संस्करण 52.0' त्रुटि संभवतः इसलिए है क्योंकि जार जेडीके 1.8 में संकलित किया गया था, लेकिन आप इसे जेडीके 1.7 वातावरण का उपयोग करके चलाने की कोशिश कर रहे हैं। रिपोर्ट की गई संख्या आवश्यक संख्या है, न कि आप जिस नंबर का उपयोग कर रहे हैं। इसे हल करने के लिए, जेडीके और जेआरई को एक ही संस्करण की ओर इशारा करना हमेशा बेहतर होता है।

इंटेलिजे आईडीईए में,

  1. मेवेन सेटिंग्समेवेनआयात पर जाएं । आयातक के लिए जेडीके को 1.8 पर सेट करें।
  2. मेवेन सेटिंग्समेवेनधावक पर जाएं । जेआरई को 1.8 पर सेट करें।
  3. मेनू फ़ाइल → → परियोजना संरचनाएसडीके पर जाएं । सुनिश्चित करें कि जेडीके होम पथ 1.8 पर सेट है।

IntelliJ IDEA को पुनरारंभ करें।

एक अन्य दृष्टिकोण जो मदद कर सकता है इंटेलिजे आईडीईए को निर्देश देकर जेडीके संस्करण शुरू करना है।

यहां जाएं: / अनुप्रयोग / IntelliJ \ IDEA \ 15 \ CE.app/Contents/Info.plist और JVM संस्करण को इसके साथ प्रतिस्थापित करें:

<key>JVMVersion</key>
<string>1.8*</string>

यदि आप इंटेलिजे आईडीईए का उपयोग कर रहे हैं, तो परियोजना संरचना ( Ctrl + Alt + Shift + S ) पर जाएं, और आप अपनी प्रोजेक्ट के जेडीके को बदल सकते हैं।


बस इसे जोड़ना चाहते हैं। मुझे आज यह समस्या थी। मेरी परियोजना, पुनर्निर्मित, और एक ही समस्या में सेटिंग्स समायोजित करें। मैंने (गलत तरीके से) माना था कि मेरी परियोजना (ग्रहण) में सेटिंग्स को बदलने से उन परियोजनाओं का कारण बन जाएगा जिन पर मेरी परियोजना को फिर से सम्मिलित किया जाता है। निर्भरता पेड़ की सभी परियोजनाओं में सेटिंग्स को समायोजित करने से समस्या हल हो गई।


मुझे एक ही समस्या थी ... एक जेडीके और प्लग-इन संस्करण संघर्ष।

मैंने 1.8 का उपयोग करके संकलित किया ... नवीनतम एक, और वह संदेश दिखाई देने लगा। इसलिए मैंने जेआरई 7 ( http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html ) की खोज की है ... और इसे इंस्टॉल किया ... फिर से .. अब एक ही कंप्यूटर में 1.8 और 1.7।

NetBeans का उपयोग करना, और संकलन करना, और संस्करण 1.7 को लक्षित करना, मेरी समस्या को ठीक करना।


यदि आप लिनक्स का उपयोग कर रहे हैं और आपके पास जावा के विभिन्न संस्करण स्थापित हैं, तो निम्न आदेश का उपयोग करें:

sudo update-alternatives --config java

यह सिस्टम पर स्थापित जावा संस्करणों के बीच स्विच करने का एक त्वरित तरीका देगा। जावा 8 चुनकर मैं आपकी समस्या का समाधान करूंगा।


मैं मैक ओएस एक्स v10.9 (Mavericks) पर ग्रहण में इस मुद्दे में भाग गया। मैंने स्टैक ओवरफ़्लो पर कई उत्तरों की कोशिश की ... आखिरकार, एक पूर्ण दिन के बाद मैंने एंड्रॉइड एसडीके का एक नया संस्करण स्थापित किया (और नए ग्रह का उपयोग करने के लिए एक्लिप्स, मेनू प्रोजेक्टगुणएंड्रॉइड अपडेट किया गया) *

मुझे एसडीके अपडेट प्राप्त करना पड़ा, लेकिन केवल उन अद्यतनों को खींचना जिन्हें मैंने सोचा था, एपीआई से परहेज करते हुए मैं काम नहीं कर रहा था (जैसे पहनें और टीवी) .. और यह चाल है । जाहिर है, ऐसा लगता है कि मैंने रास्ते में कहीं भी अपना एसडीके दूषित कर दिया था।

बीटीडब्लू .. मैंने अपने वर्कस्पेस में एक प्रोजेक्ट के साथ त्रुटि फिर से सतह देखी, लेकिन यह एपकोम्पैट -7 के आयात से संबंधित प्रतीत होता था, जिसका मैं उपयोग नहीं कर रहा था। परियोजना के आरएम-आईएनजी के बाद, अब तक इस मुद्दे को पुनरुत्थान नहीं देखा है।



अगर आपको एंड्रॉइड स्टूडियो में कोई समस्या है और आपने एंड्रॉइड एन स्थापित किया है, तो एंड्रॉइड प्रतिपादन संस्करण को पुराने के साथ बदलें और समस्या गायब हो जाएगी।


उस समस्या को ठीक करने का स्मार्ट तरीका नवीनतम एसडीके का उपयोग करके संकलन करना और संकलन करते समय क्रॉस संकलन विकल्पों का उपयोग करना है। विकल्पों का उपयोग करने के लिए पूरी तरह से सही rt.jar के rt.jar ( rt.jar नहीं ) के rt.jar की आवश्यकता है।

उस एप्लेट की प्रकृति को देखते हुए, ऐसा लगता है कि इसे जावा 1.1 के उपयोग के लिए संकलित किया जा सकता है।


आपको अपने जावा संस्करण को जावा 8 में अपग्रेड करना होगा।

नवीनतम जावा संग्रह डाउनलोड करें

अपने आधिकारिक डाउनलोड पेज से नवीनतम जावा एसई डेवलपमेंट किट 8 रिलीज डाउनलोड करें या खोल से डाउनलोड करने के लिए निम्न आदेशों का उपयोग करें।

64 बिट के लिए

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz"

 # tar xzf jdk-8u51-linux-x64.tar.gz

32 बिट के लिए

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-i586.tar.gz"

  # tar xzf jdk-8u51-linux-i586.tar.gz

नोट: यदि उपरोक्त wget कमांड आपके लिए काम नहीं करता है, तो टर्मिनल का उपयोग कर जावा स्रोत संग्रह डाउनलोड करने के लिए इस उदाहरण वीडियो को देखें।

विकल्प के साथ जावा स्थापित करें

संग्रह फ़ाइल निकालने के बाद, इसे स्थापित करने के लिए विकल्प कमांड का उपयोग करें। विकल्प कमांड chkconfig पैकेज में उपलब्ध है।

 # cd /opt/jdk1.8.0_51/

 # alternatives --install /usr/bin/java java /opt/jdk1.8.0_51/bin/java 2

 # alternatives --config java

इस बिंदु पर जावा 8 को आपके सिस्टम पर सफलतापूर्वक इंस्टॉल किया गया है। हम विकल्पों का उपयोग करके जावैक और जार कमांड पथ सेट अप करने की भी सलाह देते हैं:

 # alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_51/bin/jar 2

 # alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_51/bin/javac 2

 # alternatives --set jar /opt/jdk1.8.0_51/bin/jar

 # alternatives --set javac /opt/jdk1.8.0_51/bin/javac

स्थापित जावा संस्करण की जांच करें

निम्न आदेश का उपयोग कर जावा के स्थापित संस्करण की जांच करें।

[email protected] ~# java -version

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

पर्यावरण चर को विन्यस्त करना

अधिकांश जावा-आधारित अनुप्रयोग काम करने के लिए पर्यावरण चर का उपयोग करते हैं। निम्न आदेशों का उपयोग कर जावा पर्यावरण चर सेट करें:

सेटअप JAVA_HOME चरणीय

# export JAVA_HOME=/opt/jdk1.8.0_51
Setup JRE_HOME Variable

# export JRE_HOME=$JAVA_HOME/jre
Setup PATH Variable

# export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

ध्यान दें कि पीएटीएच वैरिएबल में परिवर्तन ने नए जावा बिन फ़ोल्डरों को पहले रखा ताकि वे पथ में किसी भी मौजूदा जावा / डिब्बे को ओवरराइड कर सकें। यह आपके रास्ते में दो जावा / बिन फ़ोल्डरों को छोड़ने के लिए थोड़ा सा मैला है, इसलिए आपको सलाह दी जानी चाहिए कि उन्हें एक अलग कार्य के रूप में साफ करें।

साथ ही, सिस्टम बूट पर ऑटो लोडिंग के लिए /etc/environment फ़ाइल में सभी पर्यावरण परिवेशों को ऊपर रखें।


यदि आपका जेडीके संस्करण सही है। एक और कारण यह है कि इस त्रुटि का कारण यह हो सकता है कि आपका एंड्रॉइड स्टूडियो कम संस्करण में है, लेकिन आपका Gradle संस्करण बहुत अधिक है। Upgrade your IDE to a newer version इससे मदद मिल सकती है।


असमर्थित major.minor संस्करण 52.0 तब आता है जब आप निम्न जेआरई संस्करण जैसे जेआरई 1.7 या जेआरई 1.6 में जावा 1.8 कंपाइलर का उपयोग करके संकलित कक्षा चलाने की कोशिश कर रहे हैं। इस त्रुटि को ठीक करने का सबसे आसान तरीका नवीनतम जावा रिलीज यानी जावा 8 स्थापित करना है और अपना प्रोग्राम चलाएं।

और पढ़ें: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html#ixzz4AVD4Evgv


यदि आप ग्रहण v4.4 (लुना) का उपयोग कर रहे हैं और उपरोक्त वर्णित सभी चरणों को पूरा कर चुके हैं तो आप अपनी रन कॉन्फ़िगरेशन सेटिंग जांचना चाहेंगे।

इस समस्या का कारण बनने वाली कई संभावनाएं हो सकती हैं। मूल कारण परियोजना के एक मेल के लिए जेडीके 1.8 / जेआरई 8 में संकलन की आवश्यकता है जबकि पर्यावरण कंपाइलर जेडीके 1.7 / जेआरई 7 है।

आप अपनी सभी पोस्ट सेटिंग्स के माध्यम से जाने के लिए मेरी ब्लॉग पोस्ट देख सकते हैं।


यदि आप ग्रहण का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपका मेनू प्रोजेक्टगुणजावा बिल्ड पथपुस्तकालयजेआरई सिस्टम लाइब्रेरी आपकी परियोजना आवश्यकताओं से मेल खाती है (जैसा कि छवि में दिखाया गया है)।


अपने एंडोरा संस्करण को जेडीके 1.8 में अपग्रेड करें।

यह एक संस्करण मेल नहीं है कि आपका कंपाइलर जावा संस्करण 8 की तलाश में है और आपके पास जावा संस्करण 7 है।

आप संस्करण 8 में संस्करण 7 में एक ऐप बिल्ड चला सकते हैं, लेकिन आप इसके विपरीत नहीं कर सकते क्योंकि जब उच्च स्तर की बात आती है, तो संस्करण पिछले संस्करणों की बजाय अधिक सुविधाओं, एन्हांसमेंट के साथ एम्बेडेड होते हैं।

इस लिंक से जेडीके संस्करण डाउनलोड करें

और इसके लिए अपना जेडीके पथ सेट करें


इनमें से किसी भी उत्तर ने मेरी मदद नहीं की, लेकिन मुझे एक समाधान मिला।
मेरे पास वाइल्डफ्लाई 8.2 में इस्तेमाल किया गया वेबप्रोजेक्ट था, जिसे मैवेन के साथ बनाया गया था, स्रोत और लक्ष्य मैवेन-कंपाइलर-प्लगइन पर 1.8 पर सेट किया गया था, साथ ही साथ सभी ग्रहण और मेवेन सेटिंग्स जावा 1.8 पर सेट की गई थीं। समस्या यह थी कि वाइल्डफ्लाई 8.2 जावा 1.8 को संभाल नहीं सकता है, इसलिए मुझे सबकुछ 1.7 पर सेट करना पड़ा और यह काम किया।





unsupported-class-version