जावा क्लास लाइब्रेरी: Difference between revisions

From Vigyanwiki
(Created page with "{{Cleanup bare URLs|date=August 2022}} {{more citations needed|date=August 2011}} जावा क्लास लाइब्रेरी (JCL) लाइब्रेरी (...")
 
No edit summary
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Cleanup bare URLs|date=August 2022}}
जावा क्लास लाइब्रेरी (जेसीएल-JCL) ऐसी लाइब्रेरी हैं जो कंप्यूटर विज्ञान में डायनेमिक लिंकिंग के विशेष सेट या समूह के रूप में प्रचलित है, इसमें जेवीएम (JVM) भाषाओं की सूची तथा जावा वर्चुअल मशीन (जेवीएम) भाषा के लिए रन टाइम (प्रोग्राम जीवनचक्र) पर इसे कॉल करने में सक्षम होती हैं। ऐसा इसलिए होता हैं क्योंकि [[जावा प्लेटफार्म]] किसी विशिष्ट [[ऑपरेटिंग सिस्टम]] पर निर्भर नहीं करता हैं, यह एप्लिकेशन किसी भी प्लेटफ़ॉर्म की लाइब्रेरी पर सरलता से विश्वास नहीं करता हैं। इसके अतिरिक्त, जावा प्लेटफ़ॉर्म अपनी बनी हुई [[मानक पुस्तकालय|मानक लाइब्रेरी]] का व्यापक सेट प्रदान करता है, जिसमें आधुनिक ऑपरेटिंग सिस्टम के लिए सामान्य कार्य सम्मलित रहते हैं।
{{more citations needed|date=August 2011}}
जावा क्लास लाइब्रेरी (JCL) लाइब्रेरी (कंप्यूटर साइंस) # डायनेमिक लिंकिंग का एक सेट है जो JVM भाषाओं की सूची | जावा वर्चुअल मशीन (JVM) भाषाएँ रन टाइम (प्रोग्राम जीवनचक्र चरण) पर कॉल कर सकती हैं। क्योंकि [[जावा प्लेटफार्म]] किसी विशिष्ट [[ऑपरेटिंग सिस्टम]] पर निर्भर नहीं है, एप्लिकेशन किसी भी प्लेटफ़ॉर्म-देशी लाइब्रेरी पर भरोसा नहीं कर सकते हैं। इसके बजाय, जावा प्लेटफ़ॉर्म [[मानक पुस्तकालय]] का एक व्यापक सेट प्रदान करता है, जिसमें आधुनिक ऑपरेटिंग सिस्टम के लिए सामान्य कार्य शामिल हैं।


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


== कार्यान्वयन और विन्यास ==
== कार्यान्वयन और विन्यास ==
जेसीएल लगभग पूरी तरह से जावा में लिखा गया है, उन हिस्सों को छोड़कर जिन्हें [[कंप्यूटर हार्डवेयर]] और ऑपरेटिंग सिस्टम तक सीधे पहुंच की आवश्यकता होती है (जैसे इनपुट/आउटपुट|आई/ओ या [[रेखांकन]] के लिए)। वे वर्ग जो इन कार्यों तक पहुँच प्रदान करते हैं, आमतौर पर ऑपरेटिंग सिस्टम [[एपीआई]] तक पहुँचने के लिए [[जावा मूल इंटरफ़ेस]] रैपर का उपयोग करते हैं।
जेसीएल मुख्यतः पूर्ण रूप से जावा में लिखा गया है, जिसके भागों को छोड़कर इन्हें [[कंप्यूटर हार्डवेयर]] और ऑपरेटिंग सिस्टम तक सीधे पहुंचाने की आवश्यकता होती है, जैसे इनपुट/आउटपुट या आई/ओ या [[रेखांकन]] के लिए विशेषकर इस समूह को इन कार्यों तक पहुँचाने का कार्य करता हैं, सामान्यतः ऑपरेटिंग सिस्टम [[एपीआई]] तक पहुँचने के लिए [[जावा मूल इंटरफ़ेस]] रैपर का उपयोग करता हैं।


लगभग सभी JCL को एक एकल JAR (फ़ाइल स्वरूप) फ़ाइल में संग्रहीत किया जाता है जिसे rt.jar कहा जाता है जो [[जावा क्रम पर्यावरण]] और [[जावा विकास किट]] वितरण के साथ प्रदान किया जाता है। जावा क्लास लाइब्रेरी (rt.jar) डिफ़ॉल्ट बूटस्ट्रैप क्लासपाथ में स्थित है<ref>{{cite web
लगभग सभी जेसीएल को एकल जेएआर (JAR) (फ़ाइल स्वरूप) फ़ाइल में संग्रहीत किये जाते है, जिसे '''"जावा क्लास लाइब्रेरी (rt.jar)"''' कहा जाता है जो [[जावा क्रम पर्यावरण|जावा रनटाइम एनवायरनमेंट(जेआरई)]] और [[जावा विकास किट|जावा विकास किट (जेडीके)]] वितरण के साथ प्रदान किया जाता है। जावा क्लास लाइब्रेरी (rt.jar) डिफ़ॉल्ट बूटस्ट्रैप क्लासपाथ में स्थित रहती है।<ref>{{cite web
| url=http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html
| url=http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html
| title=How Classes are Found
| title=How Classes are Found
| publisher=[[Oracle Corporation]]
| publisher=[[Oracle Corporation]]
| accessdate=2015-12-05}}</ref> और आवेदन के लिए घोषित [[क्लासपाथ (जावा)]] में उपस्थित होने की आवश्यकता नहीं है। JCL को खोजने के लिए जावा रनटाइम एनवायरनमेंट बूटस्ट्रैप क्लास लोडर का उपयोग करता है।
| accessdate=2015-12-05}}</ref> इसके साथ इसके आवेदन के लिए घोषित [[क्लासपाथ (जावा)]] को उपस्थित होने की आवश्यकता नहीं होती है। जेसीएल को खोजने के लिए जावा रनटाइम एनवायरनमेंट बूटस्ट्रैप क्लास लोडर का उपयोग करता है।


[[जावा मॉड्यूल सिस्टम]] ([[जावा 9]] रिलीज़ का हिस्सा) ने अखंड rt.jar JAR फ़ाइल को तोड़ दिया और निर्दिष्ट निर्भरता वाले कई मॉड्यूल में JCL को ही मॉड्यूलर कर दिया।<ref>{{cite web
[[जावा मॉड्यूल सिस्टम]] ([[जावा 9]] रिलीज़ का संस्करण) ने मुख्यतः rt.jar जेएआर फ़ाइल को ब्रेक कर दिया हैं और निर्दिष्ट निर्भरता वाले कई प्रारूपों में जेसीएल को प्रारूपित कर दिया हैं।<ref>{{cite web
| url=http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html
| url=http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html
| title=JDK Module Summary
| title=JDK Module Summary
Line 23: Line 21:
| date=2015-10-23
| date=2015-10-23
| accessdate=2015-11-29}}</ref>
| accessdate=2015-11-29}}</ref>
== अनुरूपता ==
== अनुरूपता ==
किसी भी जावा कार्यान्वयन को अनुपालन के लिए जावा [[प्रौद्योगिकी संगतता किट]] परीक्षण पास करना होगा, जिसमें जेसीएल परीक्षण शामिल हैं।
किसी भी जावा कार्यान्वयन के अनुपालन के लिए जावा [[प्रौद्योगिकी संगतता किट]] परीक्षण पास करना होगा, जिसमें जेसीएल परीक्षण सम्मलित रहता हैं।


== मुख्य विशेषताएं ==
== मुख्य विशेषताएं ==
{{Main|Java Platform, Standard Edition}}
{{Main|जावा प्लेटफार्म, मानक संस्करण}}
[[जावा पैकेज]] में प्रदान की गई [[कक्षा (कंप्यूटर विज्ञान)]] के माध्यम से जेसीएल सुविधाओं का उपयोग किया जाता है।
[[जावा पैकेज]] में प्रदान की गई [[कक्षा (कंप्यूटर विज्ञान)|क्लास (कंप्यूटर विज्ञान)]] के माध्यम से जेसीएल सुविधाओं का उपयोग करती है।
* {{Javadoc:SE|package=java.lang|java/lang}} भाषा और जावा रनटाइम एनवायरनमेंट से निकटता से जुड़े मौलिक वर्ग और [[इंटरफ़ेस (जावा)]] शामिल हैं।
* {{Javadoc:SE|package=java.lang|java/lang}} भाषा और जावा रनटाइम एनवायरनमेंट से निकटता से जुड़े मौलिक वर्ग और [[इंटरफ़ेस (जावा)]] सम्मलित हैं।
* इनपुट/आउटपुट|I/O और [[संगणक संजाल]]िंग प्लेटफ़ॉर्म [[फाइल सिस्टम]] तक पहुँचते हैं, और आम तौर पर कंप्यूटर नेटवर्क के माध्यम से {{Javadoc:SE|package=java.io|java/io}}, {{Javadoc:SE|package=java.nio|java/nio}} और {{Javadoc:SE|package=java.net|java/net}} संकुल। नेटवर्किंग के लिए, [[SCTP]] के माध्यम से उपलब्ध है {{Javadoc:SE|package=com.sun.nio.sctp|com/sun/nio/sctp|module=jdk.sctp}}.
* इनपुट/आउटपुट|I/O और [[संगणक संजाल|कंप्यूटर संजालिंग]] प्लेटफ़ॉर्म द्वार [[फाइल सिस्टम]] तक पहुँचते हैं, और सामान्यतः कंप्यूटर नेटवर्क के माध्यम से {{Javadoc:SE|package=java.io|java/io}}, {{Javadoc:SE|package=java.nio|java/nio}} और {{Javadoc:SE|package=java.net|java/net}} संकुल तक पहुँचते हैं। इस प्रकार नेटवर्किंग के लिए, [[SCTP|एससीटीपी (SCTP)]] के माध्यम से {{Javadoc:SE|package=com.sun.nio.sctp|com/sun/nio/sctp|module=jdk.sctp}} उपलब्ध होता है।
* जाओ। गणित: {{Javadoc:SE|package=java.math|java/math}} गणितीय अभिव्यक्तियाँ और मूल्यांकन प्रदान करता है, साथ ही मनमाना-सटीक दशमलव और पूर्णांक संख्या डेटाटाइप भी प्रदान करता है।
* जावा में गणित: {{Javadoc:SE|package=java.math|java/math}} गणितीय अभिव्यक्तियाँ और मूल्यांकन प्रदान करता है, साथ ही त्रुटिहीन दशमलव और पूर्णांक संख्या के डेटाटाइप को भी प्रदान करता है।
* संग्रह वर्ग और उपयोगिताएँ: नियमित अभिव्यक्ति, [[समवर्ती कंप्यूटिंग]], [[कंप्यूटर डेटा लॉगिंग]] और डेटा संपीड़न के लिए अंतर्निहित संग्रह [[डेटा संरचना]]एं और उपयोगिता कक्षाएं।
* संग्रह वर्ग और उपयोगिताएँ: नियमित अभिव्यक्ति, [[समवर्ती कंप्यूटिंग]], [[कंप्यूटर डेटा लॉगिंग]] और डेटा संपीड़न के लिए अंतर्निहित संग्रह [[डेटा संरचना]]एं और उपयोगिता क्लासेस प्रदान करता हैं।
* [[जीयूआई]] और [[2डी कंप्यूटर ग्राफिक्स]]: [[सार विंडो टूलकिट]] पैकेज ({{Javadoc:SE|package=java.awt|java/awt|module=java.desktop}}) बुनियादी जीयूआई संचालन और अंतर्निहित मूल प्रणाली से जुड़ता है। इसमें 2D ग्राफ़िक्स API भी शामिल है। द [[स्विंग (जावा)]] पैकेज ({{Javadoc:SE|package=javax.swing|javax/swing|module=java.desktop}}) AWT पर बनाया गया है और एक प्लेटफ़ॉर्म-स्वतंत्र [[विजेट टूलकिट]] प्रदान करता है, साथ ही [[प्लग करने योग्य लुक और फील]] भी देता है। यह संपादन योग्य और गैर-संपादन योग्य टेक्स्ट घटकों से भी संबंधित है।
* [[जीयूआई]] और [[2डी कंप्यूटर ग्राफिक्स]]: [[सार विंडो टूलकिट]] पैकेज ({{Javadoc:SE|package=java.awt|java/awt|module=java.desktop}}) बुनियादी जीयूआई संचालन और अंतर्निहित मूल प्रणाली से जुड़ता है। इसमें 2D ग्राफ़िक्स एपीआई भी सम्मलित है। द [[स्विंग (जावा)]] पैकेज ({{Javadoc:SE|package=javax.swing|javax/swing|module=java.desktop}}) एडब्ल्यूटी पर बनाया गया है और एक प्लेटफ़ॉर्म-स्वतंत्र [[विजेट टूलकिट]] प्रदान करता है, इसके साथ ही [[प्लग करने योग्य लुक और फील]] भी देता है। यह संपादन योग्य और गैर-संपादन योग्य टेक्स्ट घटकों से भी संबंधित रहता है।
* ध्वनि: ध्वनि डेटा के पढ़ने, लिखने, संगीत अनुक्रमक और [[सिंथेसाइज़र]] के लिए इंटरफेस और कक्षाएं।
* ध्वनि: ध्वनि डेटा के पढ़ने, लिखने, संगीत अनुक्रमक और [[सिंथेसाइज़र]] के लिए इंटरफेस और क्लासेस उपलब्ध रहती हैं।
* मूलपाठ: {{Javadoc:SE|package=java.text|java/text}} पाठ, दिनांक, संख्या और संदेशों से संबंधित है।
* मूलपाठ: {{Javadoc:SE|package=java.text|java/text}} पाठ, दिनांक, संख्या और संदेशों से संबंधित है।
* छवि पैकेज: {{Javadoc:SE|package=java.awt.image|java/awt/image|module=java.desktop}} और {{Javadoc:SE|package=javax.imageio|javax/imageio|module=java.desktop}} छवियों को लिखने, पढ़ने और संशोधित करने के लिए एपीआई प्रदान करें।
* इमेज पैकेज: {{Javadoc:SE|package=java.awt.image|java/awt/image|module=java.desktop}} और {{Javadoc:SE|package=javax.imageio|javax/imageio|module=java.desktop}} इमेजस को लिखने, पढ़ने और संशोधित करने के लिए एपीआई प्रदान करता हैं।
* [[XML]]: XML के लिए सरल API, दस्तावेज़ ऑब्जेक्ट मॉडल, [[StAX]], XSL ट्रांसफ़ॉर्मेशन, [[XPath]] और [[वेब सेवा]]ओं के लिए विभिन्न API, XML वेब सेवाओं के लिए [[SOAP]] और Java API के रूप में | JAX-WS।
* [[XML|एक्सएमएल (XML]]): एक्सएमएल के लिए सरल एपीआई, ऑब्जेक्ट मॉडल, [[StAX|स्टैक्स]], एक्सएसएल ट्रांसफ़ॉर्मेशन, [[XPath|एक्स पाथ]] और [[वेब सेवा]]ओं के लिए विभिन्न एपीआई, एक्सएमएल वेब सेवाओं के लिए [[SOAP|एसओएपी (SOAP)]] और जावा एपीआई के रूप में जैक्स-डब्ल्यूएस उपलब्ध करे जाते हैं।
* सुरक्षा प्रदान की जाती है {{Javadoc:SE|package=java.security|java/security}} और एन्क्रिप्शन सेवाएं द्वारा प्रदान की जाती हैं {{Javadoc:SE|package=javax.crypto|javax/crypto}}.
* {{Javadoc:SE|package=java.security|java/security}} द्वारा सुरक्षा प्रदान की जाती है और {{Javadoc:SE|package=javax.crypto|javax/crypto}} द्वारा एन्क्रिप्शन सेवाएं द्वारा प्रदान की जाती हैं।
* [[डेटाबेस]]: के माध्यम से [[SQL]] डेटाबेस तक पहुंच {{Javadoc:SE|package=java.sql|java/sql|module=java.sql}}
* [[डेटाबेस]]: {{Javadoc:SE|package=java.sql|java/sql|module=java.sql}} के माध्यम से [[SQL|एसक्यूएल-SQL]] डेटाबेस तक पहुंचने में सफल हो पाता हैं।
* स्क्रिप्टिंग इंजन तक पहुंच: {{Javadoc:SE|package=javax.script|javax/script|module=java.scripting}} }} पैकेज किसी भी अनुरूप स्क्रिप्टिंग भाषा तक पहुंच प्रदान करता है।
* स्क्रिप्टिंग इंजन तक पहुंचने के लिए: {{Javadoc:SE|package=javax.script|javax/script|module=java.scripting}}<nowiki>}} पैकेज किसी भी अनुरूप स्क्रिप्टिंग भाषा तक पहुंचने के लिए पाथ प्रदान करता है।</nowiki>
* [[जावा एप्लेट]]: {{Javadoc:SE|package=java.applet|java/applet|module=java.desktop}} अनुप्रयोगों को एक नेटवर्क पर डाउनलोड करने और एक संरक्षित सैंडबॉक्स के भीतर चलाने की अनुमति देता है
* [[जावा एप्लेट]]: {{Javadoc:SE|package=java.applet|java/applet|module=java.desktop}} अनुप्रयोगों को एक नेटवर्क पर डाउनलोड करने और एक संरक्षित सैंडबॉक्स के भीतर चलाने की अनुमति देता है।
* [[जावाबीन]]: {{Javadoc:SE|package=java.beans|java/beans|module=java.desktop}} पुन: प्रयोज्य घटकों में हेरफेर करने के तरीके प्रदान करता है।
* [[जावाबीन]]: {{Javadoc:SE|package=java.beans|java/beans|module=java.desktop}} पुन: प्रयोज्य घटकों में हेरफेर करने की विधि प्रदान करता है।
* आत्मनिरीक्षण और प्रतिबिंब: [http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html java.lang.Class] एक वर्ग का प्रतिनिधित्व करता है, लेकिन अन्य वर्ग जैसे विधि और निर्माता हैं में उपलब्ध {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}}.
* आत्मनिरीक्षण और प्रतिबिंब: [http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html java.lang.Class] का प्रतिनिधित्व करता है, लेकिन अन्य वर्ग जैसे विधि और निर्माता {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}}में उपलब्ध होते हैं।


== लाइसेंसिंग ==
== लाइसेंसिंग ==
{{See also|Free Java implementations|OpenJDK}}
{{See also|फ्री जावा कार्यान्वयन|ओपेन जेडीके}}
 
 
=== पूर्व लाइसेंस ===
=== पूर्व लाइसेंस ===
ओपनजेडीके के जारी होने से पहले, जावा डेवलपमेंट किट एक [[मालिकाना सॉफ्टवेयर]] पर आधारित था।
ओपनजेडीके के प्रस्तुति होने से पहले, जावा डेवलपमेंट किट स्वयं के [[मालिकाना सॉफ्टवेयर|सॉफ्टवेयर]] पर आधारित था।


2007 की पहली छमाही में लगभग पूरी तरह से मुक्त और ओपन-सोर्स कोड के आधार पर पूरी तरह से निर्मित जावा डेवलपमेंट किट जारी करने के अपने वादे के बाद,<ref>http://www.sun.com/software/opensource/java/faq.jsp#b4</ref> Sun ने 8 मई, 2007 को [[GPL]] के तहत क्लास लाइब्रेरी का पूर्ण स्रोत कोड जारी किया, कुछ सीमित भागों को छोड़कर, जिन्हें Sun द्वारा तीसरे पक्ष से लाइसेंस प्राप्त था, जो नहीं चाहते थे कि उनका कोड एक ओपन-सोर्स लाइसेंस के तहत जारी किया जाए।<ref>{{cite web
2007 की पहली छमाही में लगभग पूर्ण रूप से मुक्त और ओपन-सोर्स कोड के आधार पर पूर्ण रूप से निर्मित जावा डेवलपमेंट किट प्रस्तुत करने के अपने वादे के बाद,<ref>http://www.sun.com/software/opensource/java/faq.jsp#b4</ref> सन कंपनी ने 8 मई, 2007 को [[GPL|जीपीएल (GPL)]] के अनुसार क्लास लाइब्रेरी का पूर्ण स्रोत कोड प्रस्तुत किया, कुछ सीमित भागों को छोड़कर, जिन्हें सन द्वारा तीसरे पक्ष से लाइसेंस प्राप्त था, जो नहीं चाहते थे कि उनका कोड ओपन-सोर्स लाइसेंस के अनुसार प्रस्तुत किया जाए।<ref>{{cite web
| url=http://mail.openjdk.java.net/pipermail/announce/2007-May.txt
| url=http://mail.openjdk.java.net/pipermail/announce/2007-May.txt
| title=Open JDK is here!
| title=Open JDK is here!
Line 60: Line 54:
| publisher=[[Sun Microsystems]]
| publisher=[[Sun Microsystems]]
| date=2007-05-08
| date=2007-05-08
| accessdate=2011-11-25}}</ref> सन का लक्ष्य उन हिस्सों को बदलना था जो वैकल्पिक कार्यान्वयन के साथ मालिकाना और बंद स्रोत बने रहते हैं और क्लास लाइब्रेरी को पूरी तरह से मुक्त और खुला स्रोत बनाते हैं।
| accessdate=2011-11-25}}</ref> सन का लक्ष्य उन भागों को परिवर्तित करना था जो वैकल्पिक कार्यान्वयन के साथ अपने स्वयं के बंद स्रोत बनाये रखे और क्लास लाइब्रेरी को पूर्ण रूप से मुक्त और ओपेन स्रोत बनाते हैं।


दिसंबर 2010 तक, JDK का शेष भारित हिस्सा [[सन माइक्रोसिस्टम्स]] द्वारा तब [[Oracle Corporation]] द्वारा बाइनरी प्लग के रूप में उपलब्ध कराया गया था।<ref>
दिसंबर 2010 तक, जेडीके का शेष भाग को [[सन माइक्रोसिस्टम्स]] द्वारा तब [[Oracle Corporation|औरेकल काॅर्पोरेशन]] द्वारा बाइनरी प्लग के रूप में उपलब्ध कराया गया था।<ref>
{{cite web
{{cite web
| url=http://openjdk.java.net/legal/binary-plugs-2007-05-08.html
| url=http://openjdk.java.net/legal/binary-plugs-2007-05-08.html
Line 73: Line 67:
| url-status=dead
| url-status=dead
}}
}}
</ref> जो JDK के निर्माण के लिए आवश्यक थे लेकिन इसे चलाने के लिए आवश्यक नहीं थे। {{As of|lc=y|2007|05}}, क्लास लाइब्रेरी का एकमात्र हिस्सा जो मालिकाना और बंद-स्रोत बना रहा (4% {{as of|lc=y|2007|05}} ओपनजेडीके 7 के लिए,<ref>{{cite web
</ref> जो जेडीके के निर्माण के लिए आवश्यक थे लेकिन इसे चलाने के लिए आवश्यक नहीं थे। क्लास लाइब्रेरी का एकमात्र भाग जिस पर स्वामित्व और क्लोज-स्रोत बना रहा (4% ओपनजेडीके 7 के लिए,<ref>{{cite web
| url=http://fitzsim.org/blog/?p=17
| url=http://fitzsim.org/blog/?p=17
| title=Plans for OpenJDK
| title=Plans for OpenJDK
| last=Fitzsimmons|first=Thomas
| last=Fitzsimmons|first=Thomas
| date=2007-05-18
| date=2007-05-18
| accessdate=2007-05-22}}</ref> और 1% से कम {{as of|lc=y|2008|05}} और ओपनजेडीके 6<ref name="fedora9la">{{cite web
| accessdate=2007-05-22}}</ref> और 1% से कम और ओपनजेडीके 6<ref name="fedora9la">{{cite web
  |url        = http://langel.wordpress.com/2008/03/13/openjdk-in-fedora-9/
  |url        = http://langel.wordpress.com/2008/03/13/openjdk-in-fedora-9/
  |title      = OpenJDK to replace IcedTea in Fedora 9
  |title      = OpenJDK to replace IcedTea in Fedora 9
Line 100: Line 94:
| archive-date=2008-04-21
| archive-date=2008-04-21
| url-status=dead
| url-status=dead
}}</ref>) था<ref>{{cite web
}}</ref>) था,<ref>{{cite web
  |url        = http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
  |url        = http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
  |title      = Plans for OpenJDK
  |title      = Plans for OpenJDK
Line 110: Line 104:
  |archiveurl  = https://web.archive.org/web/20071011014156/http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
  |archiveurl  = https://web.archive.org/web/20071011014156/http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
  |archivedate = 2007-10-11
  |archivedate = 2007-10-11
}}</ref> सरल नेटवर्क प्रबंधन प्रोटोकॉल कार्यान्वयन।<ref name="openjdkb10">{{cite web
}}</ref> इस प्रकार सरल नेटवर्क प्रबंधन प्रोटोकॉल का कार्यान्वयन किया गया था।<ref name="openjdkb10">{{cite web
|url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-May/000058.html
|url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-May/000058.html
|title=OpenJDK 6 b10 source posted
|title=OpenJDK 6 b10 source posted
Line 116: Line 110:
|accessdate=2008-06-01
|accessdate=2008-06-01
}}</ref>
}}</ref>
पहली मई 2007 की रिलीज़ के बाद से, सन, समुदाय की मदद से, ओपन-सोर्स के रूप में जारी किया गया या ओपन-सोर्स विकल्पों के साथ प्रतिस्थापित किया गया, लगभग सभी भारित कोड:
 
* [[संगीत वाद्ययंत्र डिजिटल इंटरफ़ेस]] सहित सभी ऑडियो इंजन कोड ओपन सोर्स बन गए।<ref name="openjdkb10" /><ref>[http://openjdk.java.net/projects/audio-engine/ audio-engine project page]</ref> बंद-स्रोत सॉफ़्टवेयर सिंथेसाइज़र को विशेष रूप से ओपनजेडीके के लिए विकसित एक नए सिंथेसाइज़र द्वारा प्रतिस्थापित किया गया है जिसे गेरविल कहा जाता है,<ref>{{cite web
पहली मई 2007 की प्रस्तुति के पश्चात् सन समुदाय की सहायता से इसे ओपन-सोर्स के रूप में प्रस्तुत किया गया था औऱ ओपन-सोर्स विकल्पों के साथ प्रतिस्थापित किया गया।
 
इस प्रकार सभी कोड इस प्रकार हैं:
* [[संगीत वाद्ययंत्र डिजिटल इंटरफ़ेस]] सहित सभी ऑडियो इंजन कोड ओपन सोर्स बन गए थे।<ref name="openjdkb10" /><ref>[http://openjdk.java.net/projects/audio-engine/ audio-engine project page]</ref> क्लोज्ड-स्रोत सॉफ़्टवेयर सिंथेसाइज़र को विशेष रूप से ओपनजेडीके के लिए विकसित नए सिंथेसाइज़र द्वारा प्रतिस्थापित किया गया है जिसे गेरविल कहा जाता है।<ref>{{cite web
  |url        = https://gervill.dev.java.net/
  |url        = https://gervill.dev.java.net/
  |archive-url = https://archive.today/20111004052704/https://gervill.dev.java.net/
  |archive-url = https://archive.today/20111004052704/https://gervill.dev.java.net/
Line 125: Line 122:
  |accessdate = 2008-06-01
  |accessdate = 2008-06-01
}}</ref>
}}</ref>
* सभी [[क्रिप्टोग्राफी]] कक्षाएं ओपन-सोर्स के रूप में जारी की गईं,<ref>{{cite web
* सभी [[क्रिप्टोग्राफी]] कक्षाएं ओपन-सोर्स के रूप में प्रस्तुत की गईं थी।<ref>{{cite web
|url=http://mail.openjdk.java.net/pipermail/security-dev/2007-September/000015.html
|url=http://mail.openjdk.java.net/pipermail/security-dev/2007-September/000015.html
|title=Crypto has been added to OpenJDK
|title=Crypto has been added to OpenJDK
Line 131: Line 128:
|accessdate=2007-10-07
|accessdate=2007-10-07
}}</ref>
}}</ref>
* वह कोड जो स्केल करता है और कंप्यूटर फॉन्ट को रेखांकन करता है, ओपन सोर्स [[फ्री टाइप]] का उपयोग करता है<ref>[http://openjdk.java.net/projects/font-scaler/ font-scaler projectpage]</ref><ref name="2dproject">[http://openjdk.java.net/groups/2d/ Java2D project page]</ref><ref>{{cite web
* वह कोड जो स्केल करता है और कंप्यूटर फॉन्ट को रेखांकन करता है, इस प्रकार ओपन सोर्स [[फ्री टाइप]] का उपयोग करता है।<ref>[http://openjdk.java.net/projects/font-scaler/ font-scaler projectpage]</ref><ref name="2dproject">[http://openjdk.java.net/groups/2d/ Java2D project page]</ref><ref>{{cite web
|url=http://mail.openjdk.java.net/pipermail/font-scaler-dev/2007-August/000011.html
|url=http://mail.openjdk.java.net/pipermail/font-scaler-dev/2007-August/000011.html
|title=Freetype font rasteriser
|title=Freetype font rasteriser
Line 137: Line 134:
|accessdate=2007-11-24
|accessdate=2007-11-24
}}</ref>
}}</ref>
* देशी [[रंग प्रबंधन]] ओपन-सोर्स [[LittleCMS]] का उपयोग करता है।<ref name="2dproject"/>JDK में एक प्लग करने योग्य परत है, ताकि जावा की व्यावसायिक रिलीज़ मूल, मालिकाना रंग प्रबंधन प्रणाली का उपयोग कर सके और OpenJDK LittleCMS का उपयोग कर सके।
* [[रंग प्रबंधन]] के लिए ओपन-सोर्स [[LittleCMS|लिटिल सीएमएस]] का उपयोग करता है।<ref name="2dproject" /> इस प्रकार जेडीके में प्लग करने योग्य लेवलिंग भी होती है, जिससे कि जावा की व्यावसायिक प्रस्तुति मौलिक रूप से यह स्वयं के रंग प्रबंधन प्रणाली का उपयोग कर सके और ओपेन जेडीके लिटिल सीएमएस का उपयोग करने में सक्षम हो सकें।
* स्थानिक एंटी-अलियासिंग|एंटी-अलियासिंग ग्राफिक्स रेखांकन कोड फोनएमई परियोजना में उपयोग किए जाने वाले ओपन सोर्स मीन रेंडरर का उपयोग करता है।<ref name="2dproject"/><ref>[https://phoneme.dev.java.net/ phoneme.dev.java.net/] {{webarchive|url=https://web.archive.org/web/20070610234355/https://phoneme.dev.java.net/ |date=2007-06-10 }}</ref><ref>[http://openjdk.java.net/projects/graphics-rasterizer/ graphics-rasterizer project page]</ref>
* स्थानिक एंटी-अलियासिंग|एंटी-अलियासिंग ग्राफिक्स रेखांकन कोड फोनएमई परियोजना में उपयोग किए जाने वाले ओपन सोर्स मीन रेंडरर का उपयोग करता है।<ref name="2dproject" /><ref>[https://phoneme.dev.java.net/ phoneme.dev.java.net/] {{webarchive|url=https://web.archive.org/web/20070610234355/https://phoneme.dev.java.net/ |date=2007-06-10 }}</ref><ref>[http://openjdk.java.net/projects/graphics-rasterizer/ graphics-rasterizer project page]</ref>
* [[जावास्क्रिप्ट]] प्लगइन खुला स्रोत है ([[राइनो (जावास्क्रिप्ट इंजन)]] स्वयं शुरुआत से ही खुला स्रोत था)।<ref>{{cite web
* [[जावास्क्रिप्ट]] प्लगइन ओपेन स्रोत है, जिसके लिए [[राइनो (जावास्क्रिप्ट इंजन)]] द्वारा स्वयं से प्रारंभ किया गया विशेष ओपेन स्रोत था।<ref>{{cite web
| url=http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=85
| url=http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=85
| title=Javascript is encumbered and there is no javascript plugin support.
| title=Javascript is encumbered and there is no javascript plugin support.
Line 146: Line 143:
| date=2008-03-11
| date=2008-03-11
| accessdate=2008-06-01}}</ref>
| accessdate=2008-06-01}}</ref>
=== ओपन सोर्स रिलीज़ ===
=== ओपन सोर्स रिलीज़ ===
दिसंबर 2010 से शुरू होकर, सभी तथाकथित बाइनरी प्लग को [[ओपन-सोर्स मॉडल]] रिप्लेसमेंट द्वारा बदल दिया गया, जिससे संपूर्ण JDK खुला हो गया।<ref>{{cite web
दिसंबर 2010 से प्रारंभ होकर, तथाकथित सभी बाइनरी प्लगों को [[ओपन-सोर्स मॉडल]] रिप्लेसमेंट द्वारा परिवर्तित कर दिया गया था, जिससे संपूर्ण जेडीके ओपेन प्लेटफार्म में परिवर्तित हो जाए।<ref>{{cite web
| url=http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html
| url=http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html
| title=OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed
| title=OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed
Line 156: Line 151:
| date=December 2010
| date=December 2010
| accessdate=2011-11-25}}</ref>
| accessdate=2011-11-25}}</ref>
== वैकल्पिक कार्यान्वयन ==
== वैकल्पिक कार्यान्वयन ==
[[जीएनयू क्लासपाथ]] जावा के लिए अन्य मुख्य फ्री सॉफ्टवेयर क्लास लाइब्रेरी है। अन्य कार्यान्वयनों के विपरीत, यह केवल क्लास लाइब्रेरी को लागू करता है, और कई [[मुफ्त जावा कार्यान्वयन]]ों (जैसे कैफ, [[सेबलवीएम]], जैमवीएम) द्वारा उपयोग किया जाता है।
[[जीएनयू क्लासपाथ]] जावा के लिए अन्य मुख्य फ्री सॉफ्टवेयर क्लास लाइब्रेरी है। अन्य कार्यान्वयनों के विपरीत, यह केवल क्लास लाइब्रेरी को लागू करता है, और कई [[मुफ्त जावा कार्यान्वयन|फ्री जावा कार्यान्वयन]] (जैसे कैफ, [[सेबलवीएम]], जैमवीएम) द्वारा उपयोग किया जाता है।


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


== यह भी देखें ==
== यह भी देखें{{Portal|Computer programming}}==
{{Portal|Computer programming}}
* जावा प्लेटफार्म, मानक संस्करण
* जावा प्लेटफार्म, मानक संस्करण
* [[जावा एपीआई की सूची]]
* [[जावा एपीआई की सूची]]
* [[ओपनजेडीके]]
* [[ओपनजेडीके]]
* मुफ्त जावा कार्यान्वयन
* मुफ्त जावा कार्यान्वयन
* मानक पुस्तकालय
* मानक लाइब्रेरी
* जावा एप्लेट
* जावा एप्लेट


==संदर्भ==
==संदर्भ==
{{Reflist|2}}
{{Reflist|2}}
==बाहरी संबंध==
==बाहरी संबंध==
* [http://java.sun.com/j2se/ Java SE Main page]
* [http://java.sun.com/j2se/ Java SE Main page]
* {{Javadoc:SE}}
* {{Javadoc:SE}}
* [http://java.sun.com/reference/api/index.html Java SE API documentation]
* [http://java.sun.com/reference/api/index.html Java SE एपीआई documentation]
* Java software development kits (status {{As of|2006|alt=as of August 2006}}):
* Java software development kits (status {{As of|2006|alt=as of August 2006}}):
** [https://web.archive.org/web/20070610111552/https://jdk7.dev.java.net/ 1.7] (early development)
** [https://web.archive.org/web/20070610111552/https://jdk7.dev.java.net/ 1.7] (early development)
Line 187: Line 177:
** [http://java.sun.com/j2se/1.3/ 1.3] (obsolete)
** [http://java.sun.com/j2se/1.3/ 1.3] (obsolete)


{{Java (Sun)}}
[[Category:All articles containing potentially dated statements]]
{{Sun Microsystems}}
[[Category:Articles containing potentially dated statements from 2006]]
[[Category: जावा (प्रोग्रामिंग भाषा)]] [[Category: जावा (प्रोग्रामिंग भाषा) पुस्तकालय]]  
[[Category:Articles with hatnote templates targeting a nonexistent page]]
 
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 17/02/2023]]
[[Category:Created On 17/02/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal templates with redlinked portals]]
[[Category:Templates Vigyan Ready]]
[[Category:Webarchive template wayback links]]
[[Category:जावा (प्रोग्रामिंग भाषा)]]
[[Category:जावा (प्रोग्रामिंग भाषा) पुस्तकालय]]

Latest revision as of 16:36, 2 March 2023

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

जेसीएल, जेवीएम के भीतर इसके मुख्य तीन उद्देश्यों को पूरा करता है:

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

कार्यान्वयन और विन्यास

जेसीएल मुख्यतः पूर्ण रूप से जावा में लिखा गया है, जिसके भागों को छोड़कर इन्हें कंप्यूटर हार्डवेयर और ऑपरेटिंग सिस्टम तक सीधे पहुंचाने की आवश्यकता होती है, जैसे इनपुट/आउटपुट या आई/ओ या रेखांकन के लिए विशेषकर इस समूह को इन कार्यों तक पहुँचाने का कार्य करता हैं, सामान्यतः ऑपरेटिंग सिस्टम एपीआई तक पहुँचने के लिए जावा मूल इंटरफ़ेस रैपर का उपयोग करता हैं।

लगभग सभी जेसीएल को एकल जेएआर (JAR) (फ़ाइल स्वरूप) फ़ाइल में संग्रहीत किये जाते है, जिसे "जावा क्लास लाइब्रेरी (rt.jar)" कहा जाता है जो जावा रनटाइम एनवायरनमेंट(जेआरई) और जावा विकास किट (जेडीके) वितरण के साथ प्रदान किया जाता है। जावा क्लास लाइब्रेरी (rt.jar) डिफ़ॉल्ट बूटस्ट्रैप क्लासपाथ में स्थित रहती है।[1] इसके साथ इसके आवेदन के लिए घोषित क्लासपाथ (जावा) को उपस्थित होने की आवश्यकता नहीं होती है। जेसीएल को खोजने के लिए जावा रनटाइम एनवायरनमेंट बूटस्ट्रैप क्लास लोडर का उपयोग करता है।

जावा मॉड्यूल सिस्टम (जावा 9 रिलीज़ का संस्करण) ने मुख्यतः rt.jar जेएआर फ़ाइल को ब्रेक कर दिया हैं और निर्दिष्ट निर्भरता वाले कई प्रारूपों में जेसीएल को प्रारूपित कर दिया हैं।[2]

अनुरूपता

किसी भी जावा कार्यान्वयन के अनुपालन के लिए जावा प्रौद्योगिकी संगतता किट परीक्षण पास करना होगा, जिसमें जेसीएल परीक्षण सम्मलित रहता हैं।

मुख्य विशेषताएं

जावा पैकेज में प्रदान की गई क्लास (कंप्यूटर विज्ञान) के माध्यम से जेसीएल सुविधाओं का उपयोग करती है।

  • java.lang भाषा और जावा रनटाइम एनवायरनमेंट से निकटता से जुड़े मौलिक वर्ग और इंटरफ़ेस (जावा) सम्मलित हैं।
  • इनपुट/आउटपुट|I/O और कंप्यूटर संजालिंग प्लेटफ़ॉर्म द्वार फाइल सिस्टम तक पहुँचते हैं, और सामान्यतः कंप्यूटर नेटवर्क के माध्यम से java.io, java.nio और java.net संकुल तक पहुँचते हैं। इस प्रकार नेटवर्किंग के लिए, एससीटीपी (SCTP) के माध्यम से com.sun.nio.sctp उपलब्ध होता है।
  • जावा में गणित: java.math गणितीय अभिव्यक्तियाँ और मूल्यांकन प्रदान करता है, साथ ही त्रुटिहीन दशमलव और पूर्णांक संख्या के डेटाटाइप को भी प्रदान करता है।
  • संग्रह वर्ग और उपयोगिताएँ: नियमित अभिव्यक्ति, समवर्ती कंप्यूटिंग, कंप्यूटर डेटा लॉगिंग और डेटा संपीड़न के लिए अंतर्निहित संग्रह डेटा संरचनाएं और उपयोगिता क्लासेस प्रदान करता हैं।
  • जीयूआई और 2डी कंप्यूटर ग्राफिक्स: सार विंडो टूलकिट पैकेज (java.awt) बुनियादी जीयूआई संचालन और अंतर्निहित मूल प्रणाली से जुड़ता है। इसमें 2D ग्राफ़िक्स एपीआई भी सम्मलित है। द स्विंग (जावा) पैकेज (javax.swing) एडब्ल्यूटी पर बनाया गया है और एक प्लेटफ़ॉर्म-स्वतंत्र विजेट टूलकिट प्रदान करता है, इसके साथ ही प्लग करने योग्य लुक और फील भी देता है। यह संपादन योग्य और गैर-संपादन योग्य टेक्स्ट घटकों से भी संबंधित रहता है।
  • ध्वनि: ध्वनि डेटा के पढ़ने, लिखने, संगीत अनुक्रमक और सिंथेसाइज़र के लिए इंटरफेस और क्लासेस उपलब्ध रहती हैं।
  • मूलपाठ: java.text पाठ, दिनांक, संख्या और संदेशों से संबंधित है।
  • इमेज पैकेज: java.awt.image और javax.imageio इमेजस को लिखने, पढ़ने और संशोधित करने के लिए एपीआई प्रदान करता हैं।
  • एक्सएमएल (XML): एक्सएमएल के लिए सरल एपीआई, ऑब्जेक्ट मॉडल, स्टैक्स, एक्सएसएल ट्रांसफ़ॉर्मेशन, एक्स पाथ और वेब सेवाओं के लिए विभिन्न एपीआई, एक्सएमएल वेब सेवाओं के लिए एसओएपी (SOAP) और जावा एपीआई के रूप में जैक्स-डब्ल्यूएस उपलब्ध करे जाते हैं।
  • java.security द्वारा सुरक्षा प्रदान की जाती है और javax.crypto द्वारा एन्क्रिप्शन सेवाएं द्वारा प्रदान की जाती हैं।
  • डेटाबेस: java.sql के माध्यम से एसक्यूएल-SQL डेटाबेस तक पहुंचने में सफल हो पाता हैं।
  • स्क्रिप्टिंग इंजन तक पहुंचने के लिए: javax.script}} पैकेज किसी भी अनुरूप स्क्रिप्टिंग भाषा तक पहुंचने के लिए पाथ प्रदान करता है।
  • जावा एप्लेट: java.applet अनुप्रयोगों को एक नेटवर्क पर डाउनलोड करने और एक संरक्षित सैंडबॉक्स के भीतर चलाने की अनुमति देता है।
  • जावाबीन: java.beans पुन: प्रयोज्य घटकों में हेरफेर करने की विधि प्रदान करता है।
  • आत्मनिरीक्षण और प्रतिबिंब: java.lang.Class का प्रतिनिधित्व करता है, लेकिन अन्य वर्ग जैसे विधि और निर्माता java.lang.reflectमें उपलब्ध होते हैं।

लाइसेंसिंग

पूर्व लाइसेंस

ओपनजेडीके के प्रस्तुति होने से पहले, जावा डेवलपमेंट किट स्वयं के सॉफ्टवेयर पर आधारित था।

2007 की पहली छमाही में लगभग पूर्ण रूप से मुक्त और ओपन-सोर्स कोड के आधार पर पूर्ण रूप से निर्मित जावा डेवलपमेंट किट प्रस्तुत करने के अपने वादे के बाद,[3] सन कंपनी ने 8 मई, 2007 को जीपीएल (GPL) के अनुसार क्लास लाइब्रेरी का पूर्ण स्रोत कोड प्रस्तुत किया, कुछ सीमित भागों को छोड़कर, जिन्हें सन द्वारा तीसरे पक्ष से लाइसेंस प्राप्त था, जो नहीं चाहते थे कि उनका कोड ओपन-सोर्स लाइसेंस के अनुसार प्रस्तुत किया जाए।[4] सन का लक्ष्य उन भागों को परिवर्तित करना था जो वैकल्पिक कार्यान्वयन के साथ अपने स्वयं के बंद स्रोत बनाये रखे और क्लास लाइब्रेरी को पूर्ण रूप से मुक्त और ओपेन स्रोत बनाते हैं।

दिसंबर 2010 तक, जेडीके का शेष भाग को सन माइक्रोसिस्टम्स द्वारा तब औरेकल काॅर्पोरेशन द्वारा बाइनरी प्लग के रूप में उपलब्ध कराया गया था।[5] जो जेडीके के निर्माण के लिए आवश्यक थे लेकिन इसे चलाने के लिए आवश्यक नहीं थे। क्लास लाइब्रेरी का एकमात्र भाग जिस पर स्वामित्व और क्लोज-स्रोत बना रहा (4% ओपनजेडीके 7 के लिए,[6] और 1% से कम और ओपनजेडीके 6[7][8]) था,[9] इस प्रकार सरल नेटवर्क प्रबंधन प्रोटोकॉल का कार्यान्वयन किया गया था।[10]

पहली मई 2007 की प्रस्तुति के पश्चात् सन समुदाय की सहायता से इसे ओपन-सोर्स के रूप में प्रस्तुत किया गया था औऱ ओपन-सोर्स विकल्पों के साथ प्रतिस्थापित किया गया।

इस प्रकार सभी कोड इस प्रकार हैं:

  • संगीत वाद्ययंत्र डिजिटल इंटरफ़ेस सहित सभी ऑडियो इंजन कोड ओपन सोर्स बन गए थे।[10][11] क्लोज्ड-स्रोत सॉफ़्टवेयर सिंथेसाइज़र को विशेष रूप से ओपनजेडीके के लिए विकसित नए सिंथेसाइज़र द्वारा प्रतिस्थापित किया गया है जिसे गेरविल कहा जाता है।[12]
  • सभी क्रिप्टोग्राफी कक्षाएं ओपन-सोर्स के रूप में प्रस्तुत की गईं थी।[13]
  • वह कोड जो स्केल करता है और कंप्यूटर फॉन्ट को रेखांकन करता है, इस प्रकार ओपन सोर्स फ्री टाइप का उपयोग करता है।[14][15][16]
  • रंग प्रबंधन के लिए ओपन-सोर्स लिटिल सीएमएस का उपयोग करता है।[15] इस प्रकार जेडीके में प्लग करने योग्य लेवलिंग भी होती है, जिससे कि जावा की व्यावसायिक प्रस्तुति मौलिक रूप से यह स्वयं के रंग प्रबंधन प्रणाली का उपयोग कर सके और ओपेन जेडीके लिटिल सीएमएस का उपयोग करने में सक्षम हो सकें।
  • स्थानिक एंटी-अलियासिंग|एंटी-अलियासिंग ग्राफिक्स रेखांकन कोड फोनएमई परियोजना में उपयोग किए जाने वाले ओपन सोर्स मीन रेंडरर का उपयोग करता है।[15][17][18]
  • जावास्क्रिप्ट प्लगइन ओपेन स्रोत है, जिसके लिए राइनो (जावास्क्रिप्ट इंजन) द्वारा स्वयं से प्रारंभ किया गया विशेष ओपेन स्रोत था।[19]

ओपन सोर्स रिलीज़

दिसंबर 2010 से प्रारंभ होकर, तथाकथित सभी बाइनरी प्लगों को ओपन-सोर्स मॉडल रिप्लेसमेंट द्वारा परिवर्तित कर दिया गया था, जिससे संपूर्ण जेडीके ओपेन प्लेटफार्म में परिवर्तित हो जाए।[20]

वैकल्पिक कार्यान्वयन

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

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

यह भी देखें

संदर्भ

  1. "How Classes are Found". Oracle Corporation. Retrieved 2015-12-05.
  2. "JDK Module Summary". Oracle Corporation. 2015-10-23. Retrieved 2015-11-29.
  3. http://www.sun.com/software/opensource/java/faq.jsp#b4
  4. Rich Green (2007-05-08). "Open JDK is here!". Sun Microsystems. Retrieved 2011-11-25.
  5. "OpenJDK Binary Plugs". Sun Microsystems. 2007-05-08. Archived from the original on 2012-08-26. Retrieved 2011-11-25.
  6. Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK". Retrieved 2007-05-22.
  7. Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9". Archived from the original on 2012-12-10. Retrieved 2008-04-05.
  8. Wade, Karsten (2008-03-13). "OpenJDK in Fedora 9!". redhatmagazine.com. Archived from the original on 2008-04-21. Retrieved 2008-04-05. Thomas Fitzsimmons updated the Fedora 9 release notes source pages to reflect that Fedora 9 would ship with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Fedora 9 (Sulphur) is due to release in May 2008.
  9. Herron, David (2007-10-04). "Plans for OpenJDK". Archived from the original on 2007-10-11. Retrieved 2007-10-09.
  10. 10.0 10.1 "OpenJDK 6 b10 source posted". 2008-05-30. Retrieved 2008-06-01.
  11. audio-engine project page
  12. "Gervill - Software Synthesizer". Archived from the original on 2011-10-04. Retrieved 2008-06-01.
  13. "Crypto has been added to OpenJDK". 2007-09-27. Retrieved 2007-10-07.
  14. font-scaler projectpage
  15. 15.0 15.1 15.2 Java2D project page
  16. "Freetype font rasteriser". 2007-08-07. Retrieved 2007-11-24.
  17. phoneme.dev.java.net/ Archived 2007-06-10 at the Wayback Machine
  18. graphics-rasterizer project page
  19. "Javascript is encumbered and there is no javascript plugin support". IcedTea. 2008-03-11. Retrieved 2008-06-01. Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.
  20. Kelly O'Hair (December 2010). "OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed". Oracle Corporation. Retrieved 2011-11-25.

बाहरी संबंध