जीएनयू क्लासपाथ

जीएनयू क्लासपाथ जावा (प्रोग्रामिंग भाषा) के लिए मानक जावा क्लास लाइब्रेरी का एक मुफ्त सॉफ्टवेयर कार्यान्वयन है। जावा प्लेटफार्म, मानक संस्करण 1.4 और 5.0 से अधिकांश कक्षाएं प्रयुक्त की गई हैं। क्लासपाथ का उपयोग जावा-आधारित अनुप्रयोग प्रक्रिया सामग्री चलाने के लिए किया जा सकता है। जीएनयू क्लासपाथ जीएनयू परियोजना का एक भाग है। यह मूल रूप से लाइसेंस असंगतताओं के कारण जावा के लिए जीएनयू कंपाइलर के समानांतर विकसित किया गया था, किंतु बाद में दोनों परियोजनाओं का विलय हो गया।

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

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

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

कुछ अन्य उपयोगों में सम्मिलित हैं:
 * जावा के लिए जीएनयू कंपाइलर, जो जावा कोड को देशी स्टैंडअलोन निष्पादनयोग्य में संकलित करने में सक्षम है।
 * जीसीजेएप्लेट व्यूअर जावा एप्लेट को कमांड लाइन से लॉन्च करने के लिए यदि वे उपयोग में ब्राउज़र द्वारा समर्थित नहीं हैं।
 * आईकेवीएम.नेट, जो जावा को .नेट फ्रेमवर्क के साथ एकीकृत करता है
 * जेनोड, जावा अनुप्रयोगों को चलाने के लिए एक ऑपरेटिंग सिस्टम यह सिस्टम जावा और असेंबलर में ही लिखा गया है।
 * ओबेरॉन प्रोग्रामिंग भाषा के साथ एकीकरण के लिए जाओस जैसी विशिष्ट वर्चुअल मशीनें, और एम्बेडेड सिस्टम के लिए जमैकावीएम वास्तविक समय की आश्वासन के साथ है ।
 * मायरिनेट पर 128 प्रोसेसर तक वाले क्लस्टर के साथ वितरित कंप्यूटिंग के लिए वर्चुअल मशीन है।
 * आइस्डटी प्रोजेक्ट ने ओपनजेडीके के मालिकाना तत्वों के अपस्ट्रीम प्रतिस्थापन से पहले उनके प्रतिस्थापन के रूप में जीएनयू क्लासपाथ का उपयोग किया गया था।

इतिहास
जीएनयू क्लासपाथ का विकास 1998 में पांच डेवलपर्स के साथ प्रारंभ हुआ। इतिहास के समय, समान लक्ष्यों वाली अन्य परियोजनाओं के साथ इसका कई बार विलय हुआ (काफ, लिबगसीजे)। अतीत में, जीएनयू क्लासपाथ ने अपनी वर्चुअल मशीन (जाफर) की आपूर्ति की थी। जैसा कि क्लासपाथ एक आधार पुस्तकालय बन रहा था, कई अलग-अलग परियोजनाओं के साथ साझा किया गया था, इस वर्चुअल मशीन को कम और कम ध्यान दिया गया था और अब यह समर्थित नहीं है।

अधिकांश आधिकारिक जावा 1.4 एपीआई को प्रयुक्त करने के बाद, परियोजना में काम एपीआई कवरेज उन्मुख के अतिरिक्त अधिक बग उन्मुख हो गया। 24 अक्टूबर 2006 को, अंतिम लापता 1.4 वर्ग, एचटीएमएललेखक का कार्यान्वयन प्रतिबद्ध था। विकास की गति (प्रति दिन कोड की नई लाइनों की औसत संख्या के रूप में गणितीय रूप से गणना की गई) 2006 में अब तक के उच्चतम स्तर पर पहुंच गई।

जीएनयू क्लासपाथ नाम मूल रूप से ब्रैडली एम. कुह्न द्वारा पहले डेवलपर्स में से एक, पॉल फिशर को सुझाया गया था। उस समय मुफ्त कार्यान्वयन के विरुद्ध जावा पर सन के ट्रेडमार्क के प्रवर्तन के बारे में मुफ्त जावा कार्यान्वयन था। कुह्न ने $CLASSPATH नाम का सुझाव दिया, जो अधिकांश जावा सिस्टम द्वारा उपयोग किया जाने वाला पर्यावरण चर है, यह इंगित करने के लिए कि कंप्यूटर पर जावा लाइब्रेरी कहाँ स्थित है। चूँकि $CLASSPATH अधिकांशतः एक पथ (कंप्यूटिंग) में विस्तारित होता है जिसमें 'जावा' शब्द सम्मिलित होता है (जैसे ), यह वास्तव में कहे बिना जावा नाम को जगाने का एक विधि था। फिशर और अन्य डेवलपर्स $ और सभी बड़े अक्षरों के भद्दे उपयोग को पसंद नहीं करते थे और क्लासपाथ पर बस गए थे।

विकास दल
अनुरक्षक परियोजना के नियमित पक्ष का ध्यान रखता है, नियमित परियोजना रिलीज़ तैयार करता है और कुछ गुणवत्ता प्रबंधन करता है। अनुरक्षक समवर्ती संस्करण सिस्टम एक्सेस अनुमतियाँ भी प्रदान करता है।

जीएनयू क्लासपाथ का कोई औपचारिक पदानुक्रम नहीं है। कार्य सबसे तकनीकी रूप से सक्षम द्वारा किया जाता है, और कोई सख्त कार्य विभाजन भी नहीं है। सभी कोड परिवर्तन पहले चर्चा सूची में पैच के रूप में पोस्ट किए जाते हैं जहां जरूरत पड़ने पर उनका विरोध किया जा सकता है। परियोजना को सामान्यतः प्रति दिन पांच और आठ पैच के बीच प्राप्त होता है।

जीएनयू क्लासपाथ लाइब्रेरी कोड कवरेज प्रगति को ओपनजेडीके6 और ओपनजेडीके7 के विरुद्ध ट्रैक किया जा सकता है।

वर्चुअल मशीन एकीकरण
जीएनयू क्लासपाथ में आधिकारिक जावा एपीआई नेमस्पेस से कक्षाएं सम्मिलित हैं। जहां मूल कोड पर कॉल आवश्यक या अत्यधिक वांछित होती है, वहां यह कम संख्या में "वीएम" कक्षाओं से किया जाता है। ऐसे वीएम वर्ग का नाम मूल विधि की आवश्यकता वाले वर्ग के नाम से मेल खाता है, साथ ही अतिरिक्त वीएम उपसर्ग: वीएमओऑब्जेक्ट, वीएमस्ट्रिंग इत्यादि। वीएम कक्षाएं, शेष कोड से अलग संग्रहीत, पैकेज निजी और अंतिम हैं। इन कक्षाओं के विधि में कीवर्ड नेटिव सम्मिलित होता है, जो सहायक नेटिव लाइब्रेरी की आवश्यकता को दर्शाता है। ऐसी लाइब्रेरी जावा वर्चुअल मशीन के लेखकों द्वारा प्रदान की जाती हैं, इसलिए जीएनयू क्लासपाथ को लगभग किसी भी जावा वर्चुअल मशीन से जोड़ा जा सकता है यदि ऐसी वर्चुअल मशीन के स्रोत उपलब्ध हैं और उन्हें संशोधित किया जा सकता है।

जावा 1.5 में नई भाषा सुविधाओं के लिए समर्थन
संस्करण 0.95 से पहले, प्रत्येक जीएनयू क्लासपाथ रिलीज़ में दो अलग-अलग रिलीज़ टारबॉल सम्मिलित थे; एक जो मुख्य विकास शाखा की स्थिति का प्रतिनिधित्व करता है और दूसरा जिसमें अधिक प्रायोगिक शाखा की सामग्री सम्मिलित है, जो जावा 1.5 में उपस्थित जेनेरिक गणना और एनोटेशन जैसे अतिरिक्त का समर्थन करती है।

संस्करण 0.95 के बाद से, जेनरिक जैसे जावैक 1.5 को मुख्य शाखा में पूरी तरह से एकीकृत किया गया है। जावा 1.5 स्रोत कोड को बायटेकोड में संकलित करने के लिए ग्रहण (सॉफ्टवेयर) कंपाइलर, ईसीजे का उपयोग करके शाखा का निर्माण किया जा सकता है। जीसीजे के स्थिति में यह इस प्रारंभिक चरण को करने के लिए ईसीजे का उपयोग करता है, फिर बायटेकोड को मूल कोड में परिवर्तित करता है। 0.95 के बाद से, जीएनयू क्लासपाथ जीएनयू क्लासपाथ का उपयोग करके नए जीपीएलड ओपन-सोर्स जेवैक जावा संकलक को संकलित करने और चलाने का भी समर्थन करता है और जीएनयू क्लासपाथ क्लास लाइब्रेरी, उपकरण और उदाहरणों को जेवैक के साथ संकलित करने की भी अनुमति देता है।

omg.org डोमेन से कक्षाएं
जीएनयू क्लासपाथ किसी भी ऐसे कोड को स्वीकार नहीं करता है जिसके पास गैर-मुक्त लाइसेंस है, या जो गैर-मुक्त लाइसेंस वाले कोड से स्वचालित रूप से उत्पन्न हुआ था। मानक जावा एपीआई में omg.org डोमेन से कई वर्ग सम्मिलित हैं जो सामान्यतः लक्ष्य प्रबंधन समूह द्वारा प्रसारित इंटरफ़ेस परिभाषा भाषा फ़ाइलों से उत्पन्न होते हैं। इन फ़ाइलों का उपयोग, किंतु कोई संशोधन लाइसेंस गैर-मुक्त के रूप में गिना जाता है। इस कारण से, जीएनयू क्लासपाथ प्रोजेक्ट में उल्लिखित कक्षाएं केवल आधिकारिक मुद्रित ओएमजी विनिर्देशों का उपयोग करके स्क्रैच से लिखी गई थीं। इसलिए जीएनयू क्लासपाथ का यह भाग परियोजना में किसी भी अन्य कोड के रूप में मुफ़्त है।

यह भी देखें

 * अपाचे सद्भाव
 * जावा के लिए जीएनयू कम्पाइलर
 * आईकेवीएम.नेट
 * जामवीएम
 * जमैका वीएम
 * जाओस
 * जेक्सआरवीएम
 * काफ
 * आइस्ड टी
 * मुफ्त जावा कार्यान्वयन
 * जावा क्लास लाइब्रेरी

बाहरी संबंध

 * : test runs and binary compatibility tests
 * : test runs and binary compatibility tests
 * : test runs and binary compatibility tests