java components java platform
यह ट्यूटोरियल एक प्लेटफॉर्म और इसके अवयवों के रूप में जावा का एक विस्तृत विवरण देता है अर्थात् JRE, JDK, Java वर्चुअल मशीन और JRE बनाम JDK के बीच का अंतर:
जावा को एक प्रोग्रामिंग भाषा के साथ-साथ प्लेटफॉर्म के रूप में वर्णित किया गया है। हमारे परिचयात्मक ट्यूटोरियल में, हमने पहले ही चर्चा की थी कि एक प्लेटफ़ॉर्म एक सॉफ्टवेयर वातावरण है जिसके उपयोग से हम प्रोग्राम या एप्लिकेशन निष्पादित कर सकते हैं।
इस ट्यूटोरियल में, हम एक प्लेटफॉर्म के रूप में जावा पर चर्चा करेंगे। हम जावा प्लेटफ़ॉर्म घटकों पर भी चर्चा करेंगे और देखेंगे कि वे कैसे काम करते हैं।
=> आसान जावा प्रशिक्षण श्रृंखला के माध्यम से पढ़ें।
आप क्या सीखेंगे:
जावा प्लेटफार्म
जावा प्लेटफ़ॉर्म एक सॉफ्टवेयर या प्रोग्राम का संग्रह है जो जावा प्रोग्रामिंग लैंग्वेज में लिखे एप्लिकेशन को निष्पादित करने में हमारी मदद करता है। जावा प्लेटफ़ॉर्म में जावा कंपाइलर, लाइब्रेरी का एक सेट और एक निष्पादन इंजन होता है।
जावा प्लेटफ़ॉर्म किसी विशेष ओएस से स्वतंत्र है जो जावा प्रोग्रामिंग भाषा को एक प्लेटफ़ॉर्म-स्वतंत्र भाषा बनाता है।
जावा प्लेटफॉर्म में निम्नलिखित घटक होते हैं।
- जावा भाषा
- जावा डेवलपमेंट किट (JDK)
- जावा रनटाइम पर्यावरण (JRE)
- जावा कंपाइलर
- जावा वर्चुअल मशीन (JVM)
उपरोक्त मुख्य घटकों के अलावा, जावा प्लेटफ़ॉर्म में कचरा संग्रहकर्ता, पुस्तकालयों का एक सेट और अन्य अतिरिक्त घटक और उपकरण शामिल हैं जो जावा अनुप्रयोगों को कुशलतापूर्वक चलाने के लिए आवश्यक हैं।
आइए निम्नलिखित आरेख पर विचार करें जो इन सभी घटकों के बीच संबंध को दर्शाता है।
इसलिए उपरोक्त आरेख से, हम यह निष्कर्ष निकाल सकते हैं कि,
एक xml फ़ाइल क्या है और मैं इसे कैसे खोलता हूं
JRE = JVM + लाइब्रेरी क्लासेस।
JDK = JRE + डेवलपर टूल।
इससे पहले कि हम प्रत्येक घटक को उठाएं, पहले जावा प्रोग्राम निष्पादन के प्रवाह को समझें।
निम्न आरेख एक जावा प्रोग्राम के प्रवाह को दर्शाता है।
तो उपरोक्त आरेख एक जावा प्रोग्राम के लिए एक सरल निष्पादन प्रवाह दिखाता है। जावा भाषा में लिखा गया एक प्रोग्राम जावा कंपाइलर (जेवैक) द्वारा संकलित किया गया है। संकलन के बाद मशीन कोड उत्पन्न करने वाले अन्य भाषा संकलक के विपरीत, जेवैक कंपाइलर एक क्लास फाइल बनाता है जिसमें बाइट कोड होता है।
अब, यह क्लास फाइल जावा वर्चुअल मशीन (JVM) को दी गई है जो क्लास फाइल को मशीन पर निर्भर कोड वाली ऑब्जेक्ट फाइल में तब्दील करती है। फिर इस कोड को मशीन द्वारा निष्पादित किया जाता है।
आइए इनमें से प्रत्येक घटक पर विस्तार से चर्चा करें।
जावा भाषा
जावा एक प्रोग्रामिंग भाषा है जिसका उपयोग जावा प्लेटफॉर्म करता है। जावा एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है जिसका सिंटैक्स C से लिया गया है और OOPS फीचर्स C ++ से लिए गए हैं। इसका सिंटैक्स, नियम, प्रारूप और प्रोग्रामिंग प्रतिमान है।
इस श्रृंखला में, हम जावा और प्रोग्रामिंग में सभी प्रमुख अवधारणाओं को विस्तार से जानेंगे।
जावा कंपाइलर
यह जावा प्रोग्रामिंग भाषा के लिए एक संकलक है और इसका कार्य जावा स्रोत फ़ाइलों को जावा स्रोत कोड से उत्पन्न करना है। जावा क्लास फ़ाइल में एक प्लेटफ़ॉर्म-स्वतंत्र जावा बाइट कोड होता है।
क्लास फाइल जेनरेट करने के बाद, JVM इन क्लास फाइल्स को लोड करता है और या तो बाइट कोड की व्याख्या करता है या इसे जस्ट-इन-टाइम (JIT) कंपाइलर का उपयोग करके मशीन कोड में कम्पाइल करता है।
जावा वर्चुअल मशीन (JVM)
JVM जावा प्रोग्रामिंग लैंग्वेज और जावा प्लेटफॉर्म का केंद्र है। JVM बाइट कोड को मशीन-विशिष्ट कोड (अन्य प्रोग्रामर भाषाओं में ऑब्जेक्ट कोड के रूप में भी जाना जाता है) में परिवर्तित करता है।
JVM कचरा संग्रहण, मेमोरी प्रबंधन, सुरक्षा, आदि की कार्यक्षमता प्रदान करता है। JVM प्लेटफ़ॉर्म-स्वतंत्र है और हम वर्चुअल इंटरफ़ेस का उपयोग करके इसकी कार्यक्षमता को अनुकूलित कर सकते हैं यह प्रदान करता है जो मशीन-निर्भर नहीं है और ऑपरेटिंग सिस्टम से भी स्वतंत्र है।
JVM की यह प्लेटफ़ॉर्म-आज़ादी हमें एक मशीन पर जावा प्रोग्राम बनाने और दूसरी मशीन पर काम करने की अनुमति देती है (WORA - Write - Once - Run - Anywhere)।
निम्नलिखित आरेख एक JVM के विभिन्न भागों को दर्शाता है।
जेवीएम रैम पर मौजूद है। जब जावा प्रोग्राम को जावा कंपाइलर द्वारा एक क्लास फाइल में परिवर्तित किया जाता है, तो इसे निष्पादित करने की आवश्यकता होती है।
निष्पादन के लिए, क्लास फ़ाइल लोडर द्वारा राम पर लाया जाता है। यहां BYTE कोड किसी भी सुरक्षा मुद्दों के लिए सत्यापित है। क्लास लोडर को निष्पादित करने, लिंक करने और प्रोग्राम को आरंभ करने के प्रारंभ के लिए भी जिम्मेदार है।
ऊपर दिए गए आरेख में दिखाई गई जेवीएम मेमोरी में विभिन्न घटक होते हैं जैसा कि दिखाया गया है और वे पीसी रजिस्टरों को धारण करके कार्यक्रम के निष्पादन में मदद करते हैं जिसमें निष्पादित होने के लिए वर्तमान निर्देश होते हैं, हीप जो चर, सरणियों आदि को रखता है।
जेवीएम मेमोरी में विधि क्षेत्र और मूल विधि स्टैक भी होता है जिसमें क्रमशः विधि कोड और मूल भाषा विनिर्देश होते हैं। JVM स्टैक प्रोग्राम या वर्तमान थ्रेड का उदाहरण रखता है। यदि प्रत्येक थ्रेड से एक से अधिक थ्रेड है, तो इसका JVM स्टैक होगा।
एक बार कार्यक्रम ठीक से जुड़ा हुआ है, तो इसे निष्पादन इंजन पर पारित किया जाता है। निष्पादन इंजन मूल विधि इंटरफ़ेस और देशी विधि पुस्तकालयों के साथ सहयोग करता है। नेटिव विधि इंटरफ़ेस एक प्रोग्रामिंग फ्रेमवर्क है जो जावा कोड को पुस्तकालयों और देशी अनुप्रयोगों को कॉल करने की अनुमति देता है जो कि मूल विधि पुस्तकालयों का एक हिस्सा हैं।
अगला, निष्पादन इंजन सिर्फ-इन-टाइम (JIT) संकलक का उपयोग करके बायटेकोड को मूल मशीन कोड में परिवर्तित करता है। फिर प्रोग्राम को मशीन द्वारा निष्पादित किया जाता है।
ध्यान दें: JIT या जस्ट-इन-टाइम कंपाइलर जावा वर्चुअल मशीन (JVM) का एक हिस्सा है। यह बाइट कोड के एक हिस्से की व्याख्या करता है जिसमें एक ही समय में समान कार्यक्षमता होती है। दूसरे शब्दों में, यह बाइट कोड को उसी प्रोग्रामिंग स्तर पर देशी मशीन कोड में परिवर्तित करता है। यही वह कारण है जिसके लिए जावा को एक संकलित भाषा के रूप में संकलित किया गया है।
जावा रनटाइम पर्यावरण (JRE)
जेआरई, जैसा कि नाम से पता चलता है, रनटाइम वातावरण है जो जावा प्रोग्राम और एप्लिकेशन को निष्पादित करने के लिए आवश्यक है। JRE में जावा वर्चुअल मशीन (JVM) और बायनेरिज़ और अन्य वर्ग होते हैं जो जावा प्रोग्राम्स को सफलतापूर्वक निष्पादित करते हैं।
JRE JDK का एक उपसमूह है और इसमें जावा कंपाइलर, डीबगर, आदि जैसे कोई भी विकास उपकरण शामिल नहीं हैं, इसलिए यदि आपके जावा एप्लिकेशन कहीं और विकसित किए गए हैं, और आपको केवल उन्हें अपने मशीन पर निष्पादित करने की आवश्यकता है, तो आप उन्हें अलग से इंस्टॉल कर सकते हैं। इसके लिए आपको JDK इंस्टॉल करना होगा।
आपको अपनी मशीन पर JRE की आवश्यकता है क्योंकि यह आपकी मशीन पर जावा प्रोग्राम को चलाने के लिए न्यूनतम आवश्यकता है।
JRE में निम्नलिखित घटक शामिल हैं।
- कोड लाइब्रेरी, प्रॉपर्टी सेटिंग्स और रिसोर्स फाइल्स : इनमें charsets.jar, rt.jar आदि फाइलें शामिल हैं।
- DLL फ़ाइलें : जावा हॉटस्पॉट क्लाइंट वर्चुअल मशीन और सर्वर वर्चुअल मशीन द्वारा उपयोग किया जाता है।
- जावा एक्सटेंशन फाइलें : उदाहरण के लिए, लोकल स्पेसिफिकेशन से जुड़ी फाइलें जैसे कि localedata.jar
- फ़ाइलें सुरक्षा प्रबंधन के लिए आवश्यक है। उदाहरण के लिए, java.policy, java.security
- एप्लेट सपोर्ट क्लासेस।
- ट्रू टाइप फॉन्ट फाइल्स : आमतौर पर मंच द्वारा आवश्यक।
जावा में लिखे गए किसी भी एप्लिकेशन / प्रोग्राम को निष्पादित करने के लिए, आपको अपने सिस्टम पर स्थापित JRE की आवश्यकता है। JRE प्लेटफॉर्म पर निर्भर है। इसका मतलब है कि आपको अपने O.S और आर्किटेक्चर के साथ JRE को डाउनलोड और इंस्टॉल करना होगा।
जावा डेवलपमेंट किट (JDK)
यह किसी भी जावा वातावरण का मुख्य घटक है। JDK में जावा कंपाइलर, जावा डीबगर और अन्य मुख्य वर्गों के साथ JRE (जावा रनटाइम एनवायरनमेंट) शामिल है। जावा विकास के लिए JDK का उपयोग किया जाता है क्योंकि यह संपूर्ण निष्पादन योग्य और बायनेरिज़ के साथ-साथ जावा प्रोग्राम को संकलित करने के लिए आवश्यक उपकरण प्रदान करता है।
JDK एक प्लेटफ़ॉर्म-विशिष्ट सॉफ़्टवेयर है और इस प्रकार हमारे पास प्रत्येक ऑपरेटिंग सिस्टम के लिए अलग JDK इंस्टॉलर होंगे।
JDK में निम्नलिखित घटक होते हैं:
- jConsole : यह एक जावा मॉनिटरिंग और मैनेजमेंट कंसोल है।
- जार : यह पुरालेख है। इस टूल का उपयोग संबंधित क्लास लाइब्रेरियों को एक जार फ़ाइल में और साथ ही जार फ़ाइलों को प्रबंधित करने के लिए किया जाता है।
- जारसाइनर : इस उपकरण का उपयोग जार हस्ताक्षर और सत्यापन के लिए किया जाता है।
- javap: यह क्लास फाइल डिस्सेम्बलर के लिए एक उपकरण है।
- जबड़े : JNLP अनुप्रयोगों के लिए जावा वेब स्टार्ट लांचर।
- jhat : जावा हीप विश्लेषण उपकरण।
- झुंझलाहट : जावा कमांड-लाइन स्क्रिप्ट शेल।
- जस्टैक : जावा थ्रेड्स के लिए स्टैक निशान प्रिंट करने के लिए उपयोग की जाने वाली उपयोगिता।
- जावाडोक : यह स्वचालित रूप से स्रोत कोड टिप्पणियों से प्रलेखन उत्पन्न करता है।
- एप्लेटव्यूअर : वेब ब्राउज़र के बिना एप्लेट निष्पादन और डिबगिंग के लिए उपयोग किया जाता है।
- उपयुक्त : एनोटेशन प्रोसेसिंग टूल।
- बाहर निकालना : जार फ़ाइल संघर्ष की जाँच करने के लिए उपयोग की जाने वाली उपयोगिता।
- महत्वपूर्ण साधन : इस उपयोगिता का उपयोग करके आप कीस्टोर में हेरफेर कर सकते हैं।
- पॉलिसीटूल : यह एक नीति निर्माण और प्रबंधन उपकरण है।
- xjc : यह XML बाइंडिंग (JAXB) API का एक हिस्सा है जो XML स्कीमा को स्वीकार करता है और जावा क्लासेस जेनरेट करता है।
इस प्रकार आप देख सकते हैं कि JDK के घटक वे हैं जो विकास के दृष्टिकोण से हमारे लिए आवश्यक हैं।
जैसा कि ऊपर चित्र में दिखाया गया है, जावा स्रोत कोड जावा कंपाइलर द्वारा बाइट कोड में परिवर्तित किया जाता है जो कि JDK का एक हिस्सा है। फिर यह बाइट कोड JVM (यह प्रक्रिया जो पहले ही ऊपर वर्णित है) पर पारित की जाती है और वहां से यह JRE में जाता है जहां कोड निष्पादित किया गया है।
JDK और JRE के बारे में विवरण देखने के बाद, अब JRE और JDK के बीच अंतर पर चर्चा करते हैं।
JRE Vs JDK
ऐसा न करें | जेआरई | JDK |
---|---|---|
। | संकलित / व्याख्यायित जावा प्रोग्राम को इनपुट के रूप में लेता है और आउटपुट उत्पन्न करता है। | संकलित जावा स्रोत कार्यक्रम और एक वर्ग फ़ाइल बनाता है जो तब जेवीएम को दी जाती है। |
1 | JRE का मतलब Java Runtime Environment है। | JDK का मतलब जावा डेवलपमेंट किट है। |
दो | ज्यादातर जावा कार्यक्रमों के निष्पादन के लिए उपयोग किया जाता है। | JDK का उपयोग जावा प्रोग्राम विकसित करने के लिए डेवलपर्स द्वारा किया जाता है। |
३ | इसमें जावा वर्चुअल मशीन (JVM) सम्मिलित है। | जेवीएम नहीं है |
४ | JRE के पास जावा कंपाइलर नहीं है, इसलिए वे प्रोग्राम संकलित नहीं कर सकते हैं। | JDK में जेवैक कंपाइलर है और यह संकलित कार्यक्रमों के लिए जिम्मेदार है। |
५ | इसमें जावा क्लास लाइब्रेरी, जावा कमांड और अन्य इन्फ्रास्ट्रक्चर शामिल हैं। | JDK में Javadoc और Archiver जैसे टूल शामिल हैं जिनका उपयोग Java अनुप्रयोगों को विकसित करने के लिए किया जाता है। |
६ | JRE को स्टैंडअलोन प्रोग्राम के रूप में स्थापित किया जा सकता है। | JDK एक अलग इंस्टॉलर है और JRE के साथ आता है। |
निष्कर्ष
इस ट्यूटोरियल में, हमने जावा डेवलपमेंट किट (JDK) के विवरणों पर चर्चा की, जो जावा रनटाइम एनवायरनमेंट (JRE) और जावा कंपाइलर के साथ आता है। JRE, बदले में, जावा वर्चुअल मशीन (JVM) शामिल है, जो जावा कंपाइलर द्वारा उत्पन्न बाइट कोड को मशीन-विशिष्ट कोड में परिवर्तित करने के लिए जिम्मेदार है।
जावा भाषा सहित ये सभी जावा प्लेटफॉर्म नामक एक मूल इकाई के घटक हैं जो एक ऐसा वातावरण है जो हमें जावा एप्लिकेशन को चलाने में मदद करता है। हमने जेवीएम की विस्तृत वास्तुकला और काम करने के साथ-साथ यहां जावा कार्यक्रम के निष्पादन पर भी चर्चा की।
=> यहाँ जावा शुरुआती गाइड पर एक नज़र रखना।
अनुशंसित पाठ
- जावा वर्चुअल मशीन: जावा एप्लीकेशन चलाने में JVM कैसे मदद करता है
- Java SWING Tutorial: कंटेनर, कंपोनेंट्स एंड इवेंट हैंडलिंग
- जावा परिनियोजन: जावा जार फाइल का निर्माण और निष्पादन
- जावा में मॉडिफायर एक्सेस करें - उदाहरणों के साथ ट्यूटोरियल
- उदाहरणों के साथ जावा परावर्तन ट्यूटोरियल
- जावा प्रोग्रामिंग भाषा का परिचय - वीडियो ट्यूटोरियल
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- OOP जावा: जावा में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का परिचय