जावा क्लास लाइब्रेरी: Difference between revisions
(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: | ||
जावा क्लास लाइब्रेरी (जेसीएल-JCL) ऐसी लाइब्रेरी हैं जो कंप्यूटर विज्ञान में डायनेमिक लिंकिंग के विशेष सेट या समूह के रूप में प्रचलित है, इसमें जेवीएम (JVM) भाषाओं की सूची तथा जावा वर्चुअल मशीन (जेवीएम) भाषा के लिए रन टाइम (प्रोग्राम जीवनचक्र) पर इसे कॉल करने में सक्षम होती हैं। ऐसा इसलिए होता हैं क्योंकि [[जावा प्लेटफार्म]] किसी विशिष्ट [[ऑपरेटिंग सिस्टम]] पर निर्भर नहीं करता हैं, यह एप्लिकेशन किसी भी प्लेटफ़ॉर्म की लाइब्रेरी पर सरलता से विश्वास नहीं करता हैं। इसके अतिरिक्त, जावा प्लेटफ़ॉर्म अपनी बनी हुई [[मानक पुस्तकालय|मानक लाइब्रेरी]] का व्यापक सेट प्रदान करता है, जिसमें आधुनिक ऑपरेटिंग सिस्टम के लिए सामान्य कार्य सम्मलित रहते हैं। | |||
जावा क्लास लाइब्रेरी (JCL) लाइब्रेरी | |||
जेसीएल, जेवीएम के भीतर इसके मुख्य तीन उद्देश्यों को पूरा करता है: | |||
* अन्य मानक | * यह अन्य मानक लाइब्रेरी की तरह, प्रोग्रामर को उपयोगी सुविधाओं का प्रचलित सेट प्रदान करता हैं, जैसे [[संग्रह वर्ग]] और [[नियमित अभिव्यक्ति]] प्रसंस्करण इत्यादि। | ||
* | * यह लाइब्रेरी उन कार्यों के लिए विशेष इंटरफ़ेस प्रदान करता है जो सामान्य रूप से हार्डवेयर और ऑपरेटिंग सिस्टम पर निर्भर करते हैं, जैसे [[कम्प्यूटर नेट्वर्किंग]] एक्सेस और [[कम्प्यूटर फाइल]] एक्सेस इत्यादि। | ||
* कुछ अंतर्निहित प्लेटफॉर्म | * कुछ अंतर्निहित प्लेटफॉर्म भी उपयोग में लाए जाते हैं जो इन सभी सुविधाओं का समर्थन नहीं करते हैं, जिसकी जावा एप्लिकेशन मुख्तः अपेक्षा करता हैं। ऐसी स्थितियों में, लाइब्रेरी के कार्यान्वयन के लिए या तो उन सुविधाओं का अनुकरण करना पड़ता है या किसी विशिष्ट सुविधा की उपस्थिति की जांच के लिए सुसंगत विधि को प्रदान करना पड़ता है। | ||
== कार्यान्वयन और विन्यास == | == कार्यान्वयन और विन्यास == | ||
जेसीएल | जेसीएल मुख्यतः पूर्ण रूप से जावा में लिखा गया है, जिसके भागों को छोड़कर इन्हें [[कंप्यूटर हार्डवेयर]] और ऑपरेटिंग सिस्टम तक सीधे पहुंचाने की आवश्यकता होती है, जैसे इनपुट/आउटपुट या आई/ओ या [[रेखांकन]] के लिए विशेषकर इस समूह को इन कार्यों तक पहुँचाने का कार्य करता हैं, सामान्यतः ऑपरेटिंग सिस्टम [[एपीआई]] तक पहुँचने के लिए [[जावा मूल इंटरफ़ेस]] रैपर का उपयोग करता हैं। | ||
लगभग सभी | लगभग सभी जेसीएल को एकल जेएआर (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> | | accessdate=2015-12-05}}</ref> इसके साथ इसके आवेदन के लिए घोषित [[क्लासपाथ (जावा)]] को उपस्थित होने की आवश्यकता नहीं होती है। जेसीएल को खोजने के लिए जावा रनटाइम एनवायरनमेंट बूटस्ट्रैप क्लास लोडर का उपयोग करता है। | ||
[[जावा मॉड्यूल सिस्टम]] ([[जावा 9]] रिलीज़ का | [[जावा मॉड्यूल सिस्टम]] ([[जावा 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| | {{Main|जावा प्लेटफार्म, मानक संस्करण}} | ||
[[जावा पैकेज]] में प्रदान की गई [[कक्षा (कंप्यूटर विज्ञान)]] के माध्यम से जेसीएल सुविधाओं का उपयोग | [[जावा पैकेज]] में प्रदान की गई [[कक्षा (कंप्यूटर विज्ञान)|क्लास (कंप्यूटर विज्ञान)]] के माध्यम से जेसीएल सुविधाओं का उपयोग करती है। | ||
* {{Javadoc:SE|package=java.lang|java/lang}} भाषा और जावा रनटाइम एनवायरनमेंट से निकटता से जुड़े मौलिक वर्ग और [[इंटरफ़ेस (जावा)]] | * {{Javadoc:SE|package=java.lang|java/lang}} भाषा और जावा रनटाइम एनवायरनमेंट से निकटता से जुड़े मौलिक वर्ग और [[इंटरफ़ेस (जावा)]] सम्मलित हैं। | ||
* इनपुट/आउटपुट|I/O और [[संगणक संजाल]] | * इनपुट/आउटपुट|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}} गणितीय अभिव्यक्तियाँ और मूल्यांकन प्रदान करता है, साथ ही त्रुटिहीन दशमलव और पूर्णांक संख्या के डेटाटाइप को भी प्रदान करता है। | ||
* संग्रह वर्ग और उपयोगिताएँ: नियमित अभिव्यक्ति, [[समवर्ती कंप्यूटिंग]], [[कंप्यूटर डेटा लॉगिंग]] और डेटा संपीड़न के लिए अंतर्निहित संग्रह [[डेटा संरचना]]एं और उपयोगिता | * संग्रह वर्ग और उपयोगिताएँ: नियमित अभिव्यक्ति, [[समवर्ती कंप्यूटिंग]], [[कंप्यूटर डेटा लॉगिंग]] और डेटा संपीड़न के लिए अंतर्निहित संग्रह [[डेटा संरचना]]एं और उपयोगिता क्लासेस प्रदान करता हैं। | ||
* [[जीयूआई]] और [[2डी कंप्यूटर ग्राफिक्स]]: [[सार विंडो टूलकिट]] पैकेज ({{Javadoc:SE|package=java.awt|java/awt|module=java.desktop}}) बुनियादी जीयूआई संचालन और अंतर्निहित मूल प्रणाली से जुड़ता है। इसमें 2D ग्राफ़िक्स | * [[जीयूआई]] और [[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}} इमेजस को लिखने, पढ़ने और संशोधित करने के लिए एपीआई प्रदान करता हैं। | ||
* [[XML]]: | * [[XML|एक्सएमएल (XML]]): एक्सएमएल के लिए सरल एपीआई, ऑब्जेक्ट मॉडल, [[StAX|स्टैक्स]], एक्सएसएल ट्रांसफ़ॉर्मेशन, [[XPath|एक्स पाथ]] और [[वेब सेवा]]ओं के लिए विभिन्न एपीआई, एक्सएमएल वेब सेवाओं के लिए [[SOAP|एसओएपी (SOAP)]] और जावा एपीआई के रूप में जैक्स-डब्ल्यूएस उपलब्ध करे जाते हैं। | ||
* | * {{Javadoc:SE|package=java.security|java/security}} द्वारा सुरक्षा प्रदान की जाती है और {{Javadoc:SE|package=javax.crypto|javax/crypto}} द्वारा एन्क्रिप्शन सेवाएं द्वारा प्रदान की जाती हैं। | ||
* [[डेटाबेस]]: | * [[डेटाबेस]]: {{Javadoc:SE|package=java.sql|java/sql|module=java.sql}} के माध्यम से [[SQL|एसक्यूएल-SQL]] डेटाबेस तक पहुंचने में सफल हो पाता हैं। | ||
* स्क्रिप्टिंग इंजन तक | * स्क्रिप्टिंग इंजन तक पहुंचने के लिए: {{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] | * आत्मनिरीक्षण और प्रतिबिंब: [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| | {{See also|फ्री जावा कार्यान्वयन|ओपेन जेडीके}} | ||
=== पूर्व लाइसेंस === | === पूर्व लाइसेंस === | ||
ओपनजेडीके के | ओपनजेडीके के प्रस्तुति होने से पहले, जावा डेवलपमेंट किट स्वयं के [[मालिकाना सॉफ्टवेयर|सॉफ्टवेयर]] पर आधारित था। | ||
2007 की पहली छमाही में लगभग | 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 तक, | दिसंबर 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> जो | </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% से कम | | 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> इस प्रकार सरल नेटवर्क प्रबंधन प्रोटोकॉल का कार्यान्वयन किया गया था।<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 की | |||
* [[संगीत वाद्ययंत्र डिजिटल इंटरफ़ेस]] सहित सभी ऑडियो इंजन कोड ओपन सोर्स बन | पहली मई 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 | ||
|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 | ||
|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" /> इस प्रकार जेडीके में प्लग करने योग्य लेवलिंग भी होती है, जिससे कि जावा की व्यावसायिक प्रस्तुति मौलिक रूप से यह स्वयं के रंग प्रबंधन प्रणाली का उपयोग कर सके और ओपेन जेडीके लिटिल सीएमएस का उपयोग करने में सक्षम हो सकें। | ||
* स्थानिक एंटी-अलियासिंग|एंटी-अलियासिंग ग्राफिक्स रेखांकन कोड फोनएमई परियोजना में उपयोग किए जाने वाले ओपन सोर्स मीन रेंडरर का उपयोग करता है।<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 | ||
| 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 से | दिसंबर 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 | * [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) | ||
[[Category:All articles containing potentially dated statements]] | |||
[[Category:Articles containing potentially dated statements from 2006]] | |||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
[[Category: | |||
[[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]
वैकल्पिक कार्यान्वयन
जीएनयू क्लासपाथ जावा के लिए अन्य मुख्य फ्री सॉफ्टवेयर क्लास लाइब्रेरी है। अन्य कार्यान्वयनों के विपरीत, यह केवल क्लास लाइब्रेरी को लागू करता है, और कई फ्री जावा कार्यान्वयन (जैसे कैफ, सेबलवीएम, जैमवीएम) द्वारा उपयोग किया जाता है।
अपाचे सद्भाव मुफ्त सॉफ्टवेयर क्लास लाइब्रेरी थी। इसका उद्देश्य जावा स्टैक के अन्य भागों (जावा वर्चुअल मशीन, जावा संकलक और किसी भी मुफ्त जावा कार्यान्वयन के लिए आवश्यक अन्य उपकरण) को लागू करना था।
यह भी देखें
- जावा प्लेटफार्म, मानक संस्करण
- जावा एपीआई की सूची
- ओपनजेडीके
- मुफ्त जावा कार्यान्वयन
- मानक लाइब्रेरी
- जावा एप्लेट
संदर्भ
- ↑ "How Classes are Found". Oracle Corporation. Retrieved 2015-12-05.
- ↑ "JDK Module Summary". Oracle Corporation. 2015-10-23. Retrieved 2015-11-29.
- ↑ http://www.sun.com/software/opensource/java/faq.jsp#b4
- ↑ Rich Green (2007-05-08). "Open JDK is here!". Sun Microsystems. Retrieved 2011-11-25.
- ↑ "OpenJDK Binary Plugs". Sun Microsystems. 2007-05-08. Archived from the original on 2012-08-26. Retrieved 2011-11-25.
- ↑ Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK". Retrieved 2007-05-22.
- ↑ Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9". Archived from the original on 2012-12-10. Retrieved 2008-04-05.
- ↑ 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.
- ↑ Herron, David (2007-10-04). "Plans for OpenJDK". Archived from the original on 2007-10-11. Retrieved 2007-10-09.
- ↑ 10.0 10.1 "OpenJDK 6 b10 source posted". 2008-05-30. Retrieved 2008-06-01.
- ↑ audio-engine project page
- ↑ "Gervill - Software Synthesizer". Archived from the original on 2011-10-04. Retrieved 2008-06-01.
- ↑ "Crypto has been added to OpenJDK". 2007-09-27. Retrieved 2007-10-07.
- ↑ font-scaler projectpage
- ↑ 15.0 15.1 15.2 Java2D project page
- ↑ "Freetype font rasteriser". 2007-08-07. Retrieved 2007-11-24.
- ↑ phoneme.dev.java.net/ Archived 2007-06-10 at the Wayback Machine
- ↑ graphics-rasterizer project page
- ↑ "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.
- ↑ Kelly O'Hair (December 2010). "OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed". Oracle Corporation. Retrieved 2011-11-25.
बाहरी संबंध
- Java SE Main page
- Java SE 19 API Javadocs
- Java SE एपीआई documentation
- Java software development kits (status as of August 2006[update]):