Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

JDK, JRE और JVM के बीच अंतर


ये तीनों JDK, JRE और JVM अन्योन्याश्रित हैं और कोई सामान्य बिंदु नहीं है इसलिए उनके अंतर को सारणीबद्ध रूप में बताना प्रभावी नहीं है, हालांकि हम इन पर निम्नलिखित पैराग्राफ में चर्चा करेंगे।

JVM

JVM का संक्षिप्त नाम Java Virtual Machine है जो मूल रूप से एक विनिर्देश है जो एक रनटाइम वातावरण प्रदान करता है जिसमें Java बाइटकोड निष्पादित किया जा सकता है यानी यह कुछ अमूर्त है और इसका कार्यान्वयन एल्गोरिदम चुनने के लिए स्वतंत्र है और Sun और अन्य कंपनियों द्वारा प्रदान किया गया है। यह JVM है जो बाइटकोड को मशीन-विशिष्ट कोड में बदलने के लिए जिम्मेदार है। यह उन प्रोग्रामों को भी चला सकता है जो अन्य भाषाओं में लिखे गए हैं और Java बाइटकोड में संकलित हैं। JVM निम्नलिखित कार्य करता है: कोड लोड करता है, कोड सत्यापित करता है, कोड निष्पादित करता है, रनटाइम वातावरण प्रदान करता है।

JRE

JRE Java Runtime Environment है जो JVM का कार्यान्वयन है यानी JVM में परिभाषित विनिर्देशों को कार्यान्वित किया जाता है और कोड के निष्पादन के लिए संबंधित वातावरण बनाया जाता है। JRE में मुख्य रूप से जावा बाइनरी और प्रोग्राम को निष्पादित करने के लिए अन्य क्लासेस शामिल हैं जैसे JVM भौतिक रूप से मौजूद है। जावा बाइनरी के साथ JRE में विभिन्न परिनियोजन तकनीकें, कोड के साथ बातचीत करने के लिए उपयोगकर्ता इंटरफेस, विभिन्न कार्यात्मकताओं के लिए कुछ बेस लाइब्रेरी और भाषा और उपयोगिता आधारित लाइब्रेरी भी शामिल हैं।

JDK

JDK का संक्षिप्त नाम Java Development Kit है जिसमें Java प्रोग्राम को संकलित, डीबग और निष्पादित करने के लिए आवश्यक सभी टूल, एक्जीक्यूटेबल और बाइनरी शामिल हैं। JDK प्लेटफॉर्म-निर्भर है यानी Windows, Mac, और Unix सिस्टम के लिए अलग-अलग इंस्टॉलर हैं। JDK में JVM और JRE दोनों शामिल हैं और यह कोड निष्पादन के लिए पूरी तरह से जिम्मेदार है। यह JDK का संस्करण है जो Java के संस्करण को दर्शाता है।

JDK, JRE और JVM के बीच निम्नलिखित महत्वपूर्ण अंतर हैं

क्र. सं.
मुख्य बिंदु
JDK
JRE
JVM
1
परिभाषा
JDK (Java Development Kit) Java में एप्लिकेशन विकसित करने के लिए एक सॉफ्टवेयर डेवलपमेंट किट है। JRE के अलावा, JDK में कई डेवलपमेंट टूल्स (कंपाइलर, JavaDoc, Java Debugger आदि) भी होते हैं।
JRE (Java Runtime Environment) JVM का कार्यान्वयन है और इसे एक सॉफ्टवेयर पैकेज के रूप में परिभाषित किया गया है जो Java क्लास लाइब्रेरी, Java Virtual Machine (JVM), और Java प्रोग्रामिंग में लिखे गए एप्लिकेशन चलाने के लिए अन्य घटक प्रदान करता है।
JVM (Java Virtual Machine) एक अमूर्त मशीन है जो प्लेटफॉर्म-निर्भर है और इसके तीन 개념 हैं: एक विनिर्देश के रूप में, एक दस्तावेज जो JVM कार्यान्वयन की आवश्यकता का वर्णन करता है, कार्यान्वयन, एक कंप्यूटर प्रोग्राम जो JVM आवश्यकताओं को पूरा करता है, और इंस्टेंस, एक कार्यान्वयन जो Java बाइटकोड को निष्पादित करता है और Java बाइटकोड को निष्पादित करने के लिए रनटाइम वातावरण प्रदान करता है।
2
मुख्य कार्यक्षमता
JDK मुख्य रूप से कोड निष्पादन के लिए उपयोग किया जाता है और इसकी मुख्य कार्यक्षमता विकास है।
दूसरी ओर JRE मुख्य रूप से कोड निष्पादन के लिए वातावरण बनाने के लिए जिम्मेदार है।
JVM दूसरी ओर सभी कार्यान्वयन निर्दिष्ट करता है और JRE को ये कार्यान्वयन प्रदान करने के लिए जिम्मेदार है।
3
प्लेटफॉर्म स्वतंत्रता
JDK प्लेटफॉर्म-निर्भर है यानी अलग-अलग प्लेटफॉर्म के लिए अलग JDK आवश्यक है।
JDK की तरह JRE भी प्लेटफॉर्म-निर्भर है।
JVM प्लेटफॉर्म-स्वतंत्र है।
4
टूल्स
चूंकि JDK मुख्य विकास के लिए जिम्मेदार है इसलिए इसमें Java एप्लिकेशन विकसित, डीबग और मॉनिटर करने के लिए टूल्स होते हैं।
दूसरी ओर JRE में कंपाइलर या डीबगर जैसे टूल्स नहीं होते हैं। बल्कि इसमें क्लास लाइब्रेरी और अन्य सहायक फाइलें होती हैं जिन्हें JVM को प्रोग्राम चलाने के लिए आवश्यकता होती है।
JVM में सॉफ्टवेयर डेवलपमेंट टूल्स शामिल नहीं हैं।
5
कार्यान्वयन
JDK = Java Runtime Environment (JRE) + डेवलपमेंट टूल्स
JRE = Java Virtual Machine (JVM) + एप्लिकेशन चलाने के लिए लाइब्रेरी
JVM = केवल Java बाइटकोड निष्पादित करने के लिए रनटाइम वातावरण।

  1. - जावा में Collection और Collections में अंतर?

    Collection एक इंटरफेस है जबकि Collections जावा में एक यूटिलिटी क्लास है। Set, List, और Queue Collection इंटरफेस के कुछ सबइंटरफेस हैं, एक Map इंटरफेस भी Collections फ्रेमवर्क का हिस्सा है, लेकिन यह Collection इंटरफेस को इनहेरिट नहीं करता। Collection इंटरफेस के महत्वपूर्ण मेथड्स हैं add(), remove(),

  1. - जावा में wait() और sleep() मेथड में अंतर?

    sleep() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह वर्तमान रनिंग थ्रेड को नॉन-रनेबल स्थिति में भेज सकता है जबकि wait() मेथड एक इंस्टेंस मेथड है, हम इसे थ्रेड ऑब्जेक्ट का उपयोग करके बुलाते हैं और यह केवल उस ऑब्जेक्ट के लिए प्रभावी होता है। sleep() मेथड समय समाप्त होने या interrupt() मेथड बुलाए जा

  1. JRE और JDK में क्या अंतर है? JRE और JDK में क्या अंतर है?

    JDK (Java Development Kit) में Java एप्लिकेशन विकसित करने और चलाने के लिए आवश्यक सभी टूल्स और लाइब्रेरीज़ होती हैं, जिसमें JRE भी शामिल है। JRE (Java Runtime Environment) एक सॉफ्टवेयर है जिसमें JVM और Java प्रोग्राम चलाने के लिए आवश्यक अन्य लाइब्रेरीज़ होती हैं।