2011-01-14 12 views
19

हालांकि मैं असली जावा डेवलपर नहीं हूं (अभी तक), मुझे लगता है कि मुझे अब तक यह पता होना चाहिए, लेकिन मैं अभी भी बहुत उलझन में हूं। मेरा प्रश्न के दो भाग हैं:जेडीके, जेआरई, जावा: संस्करण भ्रम!

  1. तथाकथित बीच क्या अंतर है (जैसा कि मैंने देखा है यह) "सूर्य JDK", OpenJDK, और GCJ?

  2. कई बार, मैंने निम्नलिखित में से प्रत्येक को फेंक दिया है, यह समझने में बहुत भ्रमित कर रहा है कि कौन सी संस्करण संख्या वास्तव में लागू होती है। क्या कोई मुझे इस तरह हल करने में मदद कर सकता है?

    • जावा 6
    • जावा 1.6
    • JDK 6
    • JDK 1.6
    • JRE 1.6
    • JVM 11,0

नोट: मैं के बीच अंतर समझना करना जेडीके (जावा डेवलपमेंट किट) और जाव एक रनटाइम पर्यावरण। हालांकि, जेआरई और जेवीएम के बीच अंतर पर मैं पूरी तरह से स्पष्ट नहीं हूं, हालांकि मुझे पता है कि जेवीएम क्या है/करता है।

+0

बात यह है कि अभी भी वास्तव में confuses मुझे उस OpenJDK ओरेकल पर ध्यान देने के परियोजना प्रतीत हो रहा है है: http://openjdk.java.net/faq/ - अगर वह हालांकि सच है, यही कारण है कि ओरेकल दो अलग-अलग संस्करणों को बनाए रखना जारी रहेगा जेडीके (ओपनजेडीके, ओरेकल जेडीके) का? –

उत्तर

8
  1. सूर्य जेडीके सूर्य द्वारा बनाया गया है, ओपनजेडीके एक प्रतिस्पर्धी ओपन सोर्स कार्यान्वयन है। जीसीजे जीएनयू जावा कंपाइलर है।
  2. जावा 6 = जावा 1.6 और JDK 6 = JDK 1,6

विवरण आइटम 1 http://en.wikipedia.org/wiki/OpenJDK https://stackoverflow.com/questions/1977238/why-should-i-use-the-sun-jdk-over-the-openjdk-or-vice-versa

http://en.wikipedia.org/wiki/GNU_Compiler_for_Java

कैसे GCJ सूर्य JDK/OpenJDK से संबंधित है? कोई सीधा संबंध नहीं है जिसे मैं जानता हूं। जीसीजे एक अलग परियोजना है। दूसरे पर एक जेडीके का उपयोग करने की योग्यता क्या हैं? यदि आप सूर्य जेडीके को फिर से वितरित करते हैं तो लाइसेंसिंग समस्याएं हो सकती हैं। व्यक्तिगत रूप से मैंने अपनी स्थिरता के कारण सूर्य जेडीके में अधिक भरोसा रखा। ओपनजेडीके एक सन प्रोजेक्ट नहीं है? हां और ना। यह एक सामुदायिक परियोजना है।

+0

आप अकेले हैं जिन्होंने दोनों सवालों का जवाब दिया है, नवी, लेकिन मुझे लगता है कि मैं उससे थोड़ा अधिक विस्तार की उम्मीद कर रहा था। जीसीजे सूर्य जेडीके/ओपनजेडीके से कैसे संबंधित है? दूसरे पर एक जेडीके का उपयोग करने की योग्यता क्या हैं? ओपनजेडीके एक सन प्रोजेक्ट नहीं है? आदि –

+0

@ ब्रायन मैंने अपना जवाब अपडेट किया। – Navi

+0

अतिरिक्त संसाधनों के लिए धन्यवाद, लेकिन मैं अभी भी उलझन में हूं कि क्यों ओरेकल ओपनजेडीके में इतनी भारी शामिल होगी कि वे अभी भी अपने स्वामित्व कार्यान्वयन को बनाए रखते हैं। यदि एक ही कंपनी दोनों के विकास के केंद्र में है, तो दोनों एक खुले स्रोत और एक अलग मालिकाना कार्यान्वयन की आवश्यकता क्यों है, और दोनों कुछ डिग्री के लिए खुले हैं? –

2

अपने प्रोग्रामिंग भाषा के लिए have made some changes to the naming conventions वर्षों में सूर्य। मूल रूप से आपके पास jdk1.1 था और इसी तरह। Jdk1.2 पर उन्होंने इसे जावा 2 में बदलने का फैसला किया। तो आप जावा 2 के बारे में कुछ पुरानी किताबें देखेंगे।

फिर कुछ रहस्यमय कारणों से यह jdk1.3 पर वापस चला गया तो jdk1.4। जब jdk1.5 जारी किया गया तो उन्होंने नामों को फिर से बदलने के लिए एक कड़ी मेहनत की। तो हमारे पास जावा 5 था। चूंकि उन्होंने इसके साथ चिपकने का फैसला किया है, इसलिए आपके पास निम्नलिखित हैं:

jdk1.5 = Java 5 
    jdk1.6 = Java 6 
    jdk1.7 = Java 7 

और (शायद) इसी तरह।

तो उम्मीद है कि इसका उस भाग को समझाया जाए। आपके प्रश्न में जावा 6 == जावा 1.6 == जेडीके 6 == जेडीके 1.6।

जेवीएम बनाम जेआरई के लिए। जेआरई में आपके जावा प्रोग्राम को चलाने के लिए आवश्यक JVM के साथ-साथ कक्षा पुस्तकालय और कोई अन्य टूल शामिल है। JVM बस वह प्रोग्राम है जो आपके बाइट कोड को समझता है और मेजबान मशीन पर निष्पादित करता है।

7

जावा 6 और जावा 1.6 समान हैं। मूल रूप से जावा को जावा 1.X नाम दिया गया था, लेकिन समय बीतने के बाद, सन मार्केटिंग ने पाया कि अगर वे "1." गिराए तो महत्वपूर्ण सुधारों को बेहतर तरीके से संकेत मिलेगा। अंश। ऐसा करने वाला पहला संस्करण जावा 1.5 था जिसे जावा 5 के रूप में विपणन किया गया था।

जेआरई 6 जावा 6 का उपभोक्ता वितरण है। http://java.com से डाउनलोड करना आसान है।

जेडीके 6 जावा 6 का डेवलपर वितरण है। इसमें एक कंपाइलर जैसे टूल और डिफ़ॉल्ट जेआरई की तुलना में अधिक संस्कृतियों के लिए समर्थन शामिल है। इसे http://javasoft.com से डाउनलोड करने की आवश्यकता है।

जेवीएम 11.0 ओरेकल जेआरई/जेडीके के अंदर जावा "दुभाषिया" का संस्करण है (अन्य विक्रेता अलग-अलग संख्याओं का उपयोग करते हैं)। यह कहने के समान है कि विंडोज विस्टा वास्तव में विंडोज 6.0.6001 है।

3
  1. वे मूल रूप से मानकों के एक ही सेट के विभिन्न कार्यान्वयन हैं जो बताते हैं कि जावा वर्चुअल मशीन को कैसे काम करना चाहिए।
  2. जावा संस्करण 1.4 को 1.0 से सामान्य तरीके से आगे बढ़े जब विपणन से कुछ चतुर पुरुष 1.5 के बजाय अगले संस्करण "जावा 5" बुला के विचार के साथ आया था, लेकिन निश्चित रूप से यह केवल भ्रम की स्थिति है, जो को खत्म किया वजह से 6 (1.6) श्रृंखला और शायद कुछ समय के लिए जारी रहेगा। मुझे नहीं पता कि जेवीएम 11.0 हालांकि क्या हो सकता है। (क्या आपको यकीन है कि यह 1.1.0 नहीं है? मुझे पता है कि यह एक लंबा शॉट है लेकिन कौन जानता है।)

और जेवीएम और जेआरई के बीच का अंतर। कड़ाई से JVM बोल सिर्फ मशीन है कि जावा बाईटकोड की व्याख्या है, जबकि एक JRE भी सभी मानक वर्ग पुस्तकालयों, संसाधन फ़ाइलों, dll रों (so रों) और इतने पर शामिल हैं।

1

सावधान रहें, जीसीजे प्रमाणित जेवीएम नहीं है। यह जावा प्रोजेक्ट के लिए जीएनयू क्लासपाथ है जिसमें जीएनयू लाइसेंस के तहत आंशिक जावा संगतता है। आपको तब तक स्पष्ट करना चाहिए जबतक कि आप निश्चित नहीं हैं कि यह आपकी आवश्यकताओं को पूरा करता है और आपके पास एक कारण है कि आप एक और पूर्ण जावा कार्यान्वयन का उपयोग नहीं कर सकते हैं।

संबंधित मुद्दे