JDK और JRE में क्या अंतर है?
उनकी भूमिकाएं क्या हैं और मुझे एक या दूसरे का उपयोग कब करना चाहिए?
JDK और JRE में क्या अंतर है?
उनकी भूमिकाएं क्या हैं और मुझे एक या दूसरे का उपयोग कब करना चाहिए?
जवाबों:
JRE है जावा रनटाइम एनवायरनमेंट । यह एक संकलित जावा प्रोग्राम को चलाने के लिए आवश्यक सभी चीजों का एक पैकेज है, जिसमें जावा वर्चुअल मशीन (जेवीएम), जावा क्लास लाइब्रेरी, java
कमांड और अन्य बुनियादी ढाँचे शामिल हैं। हालाँकि, इसका उपयोग नए प्रोग्राम बनाने के लिए नहीं किया जा सकता है।
JDK है जावा डेवलपमेंट किट , जावा के लिए पूर्ण विशेषताओं एसडीके। इसमें JRE के पास सब कुछ है, लेकिन संकलक ( javac
) और उपकरण (जैसे javadoc
और jdb
) भी हैं। यह प्रोग्राम बनाने और संकलित करने में सक्षम है।
आमतौर पर, यदि आप केवल कंप्यूटर पर जावा प्रोग्राम चलाने के बारे में परवाह करते हैं तो आप केवल JRE इंस्टॉल करेंगे। यह आप सभी की जरूरत है दूसरी ओर, यदि आप कुछ जावा प्रोग्रामिंग करने की योजना बना रहे हैं, तो आपको इसके बजाय जेडीके स्थापित करने की आवश्यकता है।
कभी-कभी, भले ही आप कंप्यूटर पर कोई जावा विकास करने की योजना नहीं बना रहे हों, फिर भी आपको जेडीके स्थापित करने की आवश्यकता है। उदाहरण के लिए, यदि आप JSP के साथ एक वेब एप्लिकेशन को तैनात कर रहे हैं, तो आप तकनीकी रूप से एप्लिकेशन सर्वर के अंदर जावा प्रोग्राम चला रहे हैं। फिर आपको जेडीके की आवश्यकता क्यों होगी? क्योंकि एप्लिकेशन सर्वर JSP को जावा सर्वलेट्स में बदल देगा और सर्वलेट्स को संकलित करने के लिए JDK का उपयोग करने की आवश्यकता है। मुझे यकीन है कि और भी उदाहरण हैं।
ऊपर (पाब्लो द्वारा) उत्तर बहुत सही है। यह सिर्फ अतिरिक्त जानकारी है।
JRE , जैसा कि नाम का तात्पर्य एक है पर्यावरण । यह मूल रूप से जावा-संबंधित फ़ाइलों के साथ निर्देशिकाओं का एक गुच्छा है, बुद्धि के लिए:
bin/
जावा के निष्पादन योग्य कार्यक्रम शामिल हैं। सबसे महत्वपूर्ण है java
(और विंडोज के लिए, javaw
साथ ही), जो जेवीएम लॉन्च करता है। यहाँ कुछ अन्य उपयोगिताएँ भी हैं, जैसे कि keytool
और policytool
।conf/
जावा विशेषज्ञों के साथ खेलने के लिए उपयोगकर्ता-संपादन योग्य कॉन्फ़िगरेशन फ़ाइलें रखता है।lib/
बड़ी संख्या में सहायक फाइलें हैं: कुछ .jar
एस, कॉन्फ़िगरेशन फाइलें, संपत्ति फाइलें, फोंट, अनुवाद, समारोह, आदि - जावा के सभी "ट्रिमिंग्स"। सबसे महत्वपूर्ण है modules
, एक फ़ाइल जिसमें .class
जावा मानक पुस्तकालय की फाइलें हैं।.dll
(Windows) या .dylib
(MacOS) या .so
(लिनक्स) के तहत दायर bin/
या lib/
समर्थन, प्रणाली विशेष देशी बाइनरी कोड के साथ।JDK भी निर्देशिका का एक सेट है। यह कुछ अतिरिक्त के साथ JRE का सुपरसेट है:
bin/
विकास उपकरण के साथ बढ़े हुए है। उनमें से सबसे महत्वपूर्ण है javac
; दूसरों में शामिल हैं jar
, javadoc
और jshell
।jmods/
, जो मानक पुस्तकालय के लिए JMOD फाइलें रखता है, को जोड़ा गया है। ये फाइलें मानक पुस्तकालय के साथ उपयोग करने की अनुमति देती हैं jlink
।JDK JRE का एक सुपरसेट है, और इसमें JRE में मौजूद हर चीज सम्मिलित है, साथ ही टूल और डीबगर्स जैसे टूल एप्लेट्स और एप्लिकेशन विकसित करने के लिए आवश्यक हैं। JRE पुस्तकालयों, जावा वर्चुअल मशीन (JVM), और जावा प्रोग्रामिंग भाषा में लिखे एप्लेट और एप्लिकेशन को चलाने के लिए अन्य घटक प्रदान करता है।
आम आदमी के शब्दों में: JDK दादा JRE पिता है और JVM उनका बेटा है। [अर्थात JDK> JRE> JVM]
JDK = JRE + विकास / डिबगिंग टूल
JRE = JVM + Java संकुल कक्षाएं (जैसे उपयोग, गणित, लैंग, awt, स्विंग आदि) + रनटाइम लाइब्रेरी।
JVM = क्लास लोडर सिस्टम + रनटाइम डेटा क्षेत्र + निष्पादन इंजन।
दूसरे शब्दों में, यदि आप एक जावा प्रोग्रामर हैं, तो आपको अपने सिस्टम में JDK की आवश्यकता होगी और इस पैकेज में JRE और JVM भी शामिल होंगे, लेकिन यदि आप सामान्य उपयोगकर्ता हैं जो ऑनलाइन गेम खेलना पसंद करते हैं, तो आपको केवल JRE की आवश्यकता होगी और यह पैकेज नहीं होगा इसमें JDK।
JVM:
जावा वर्चुअल मशीन (JVM) आभासी मशीन है कि जावा bytecodes चलाया जाता है। JVM जावा स्रोत कोड को नहीं समझता है, इसीलिए आप अपनी .java फ़ाइलों को * .class फ़ाइलों को प्राप्त करने के लिए संकलित करते हैं, जिनमें JVM द्वारा समझने योग्य बाईटेकोड होते हैं। यह वह इकाई भी है जो जावा को "पोर्टेबल भाषा" (एक बार लिखने, कहीं भी चलाने) की अनुमति देता है। वास्तव में विभिन्न प्रणालियों (विंडोज, लिनक्स, मैकओएस, विकिपीडिया सूची देखें ..) के लिए जेवीएम के विशिष्ट कार्यान्वयन हैं, उद्देश्य यह है कि एक ही बाईटकोड के साथ वे सभी एक ही परिणाम देते हैं।
JDK और JRE
जेडीके और जेआरई के बीच अंतर को समझाने के लिए, ओरेकल प्रलेखन को पढ़ना और आरेख से परामर्श करना सबसे अच्छा है:
जावा रनटाइम पर्यावरण (JRE)
जावा रनटाइम एनवायरनमेंट (JRE) एप्लेट और अनुप्रयोगों जावा प्रोग्रामिंग भाषा में लिखा चलाने के लिए पुस्तकालयों, जावा वर्चुअल मशीन, और अन्य घटकों प्रदान करता है। इसके अलावा, दो प्रमुख परिनियोजन प्रौद्योगिकियाँ JRE का हिस्सा हैं: जावा प्लग-इन, जो एप्लेट्स को लोकप्रिय ब्राउज़रों में चलाने में सक्षम बनाता है; और जावा वेब स्टार्ट, जो एक नेटवर्क पर स्टैंडअलोन अनुप्रयोगों को तैनात करता है। यह उद्यम सॉफ्टवेयर विकास और तैनाती के लिए जावा 2 प्लेटफॉर्म, एंटरप्राइज एडिशन (जे 2 ईई) में प्रौद्योगिकियों की नींव भी है। JRE में एप्लेट और एप्लिकेशन विकसित करने के लिए कंपाइलर या डीबगर्स जैसे टूल और यूटिलिटीज शामिल नहीं हैं।
जावा डेवलपमेंट किट (JDK)
JDK JRE का एक सुपरसेट है, और इसमें वह सब कुछ है जो JRE में है, प्लस टूल और डिबगर जैसे टूल जो एप्लेट और एप्लिकेशन विकसित करने के लिए आवश्यक हैं।
ध्यान दें कि Oracle JDK प्रदान करने वाला एकमात्र नहीं है।
आधिकारिक जावा वेबसाइट से ...
JRE (जावा रनटाइम वातावरण):
JDK (जावा डेवलपमेंट किट)
डिबगिंग परिप्रेक्ष्य से एक अंतर:
स्ट्रिंग और ArrayList जैसे जावा सिस्टम कक्षाओं में डीबग करने के लिए, आपको JRE के एक विशेष संस्करण की आवश्यकता होती है जिसे "डिबग सूचना" के साथ संकलित किया जाता है। JDK के अंदर शामिल JRE यह जानकारी प्रदान करता है, लेकिन नियमित JRE नहीं करता है। बेहतर प्रदर्शन सुनिश्चित करने के लिए नियमित JRE में इस जानकारी को शामिल नहीं किया गया है।
डिबगिंग जानकारी क्या है? इस ब्लॉग पोस्ट से ली गई एक त्वरित व्याख्या इस प्रकार है :
आधुनिक संकलक आपके उच्च-स्तरीय कोड को परिवर्तित करने के लिए एक बहुत अच्छा काम करते हैं, इसकी अच्छी तरह से इंडेंटेड और नेस्टेड कंट्रोल स्ट्रक्चर्स और मनमाने ढंग से टाइप किए गए चरों को मशीन कोड (या जावा के मामले में बाईटेकोड) नामक बिट्स के एक बड़े ढेर में टाइप किया जाता है, जिसका एकमात्र उद्देश्य है लक्ष्य सीपीयू (आपके जेवीएम का आभासी सीपीयू) पर जितनी जल्दी हो सके चलाने के लिए। जावा कोड कई मशीन कोड निर्देशों में परिवर्तित हो जाता है। चर को पूरे स्थान पर भेज दिया जाता है - ढेर में, रजिस्टरों में, या पूरी तरह से दूर अनुकूलित। परिणामी कोड में संरचनाएं और वस्तुएं भी मौजूद नहीं हैं - वे केवल एक अमूर्त है जो हार्ड-कोडेड ऑफसेट्स में छोटे किशोरों में अनुवादित हो जाता है।
तो एक डिबगर को कैसे पता चलता है कि किसी समारोह में प्रवेश के समय उसे तोड़ने के लिए कहां रोकना है? जब आप इसे किसी वैरिएबल के मूल्य के लिए पूछेंगे तो यह कैसे पता चलेगा कि आपको क्या दिखाना है? उत्तर है - डिबगिंग जानकारी।
डिबगिंग जानकारी कंपाइलर द्वारा मशीन कोड के साथ मिलकर उत्पन्न की जाती है। यह निष्पादन योग्य कार्यक्रम और मूल स्रोत कोड के बीच संबंधों का प्रतिनिधित्व है। यह जानकारी पूर्व-निर्धारित प्रारूप में एन्कोड की गई है और मशीन कोड के साथ संग्रहीत है। विभिन्न प्लेटफार्मों और निष्पादन योग्य फ़ाइलों के लिए कई ऐसे स्वरूपों का आविष्कार वर्षों में किया गया था।
JVM, JRE, JDK - ये सभी जावा भाषा की रीढ़ हैं। प्रत्येक घटक अलग से काम करते हैं। जेडीके और जेआरई शारीरिक रूप से मौजूद हैं लेकिन जेवीएम एक अमूर्त मशीन है जिसका अर्थ है कि यह भौतिक रूप से मौजूद नहीं है।
JVM JDK और JRE का सबसिस्टम है जिसका उपयोग मध्यवर्ती कोड "बायटेकोड" के रूप में जाना जाता है। यह पहले जावा कंपाइलर (जेवैक) द्वारा उत्पन्न "क्लास फाइल" (.c एक्सटेंशन) को उनके उपयोग के अनुसार जेवीएम सबसिस्टम क्लास लोडर और वर्गीकृत मेमोरी लोकेशन (क्लास एरिया, स्टैक, हीप और पीसी रजिस्टरों) पर लोड करता है। तब यह सुनिश्चित करने के लिए सभी बाइटकोड की जांच करता है कि यह जावा में वापस आ गया है और नेटवर्क द्वारा सभी मेमोरी एक्सेसिबिलिटी एक्सेस है। दुभाषिया का काम उसके बाद शुरू होता है जहां वह लाइन द्वारा पूरे प्रोग्राम लाइन की जांच करता है। परिणाम अंततः JRE (जावा रनटाइम एनवायरनमेंट) के माध्यम से कंसोल / ब्राउज़र / एप्लिकेशन में दिखाए जाते हैं जो रनटाइम की सुविधा देते हैं।
JRE JDK का एक सबसिस्टम भी है जो JVM, कक्षाएं, निष्पादन योग्य फाइलें जैसे .jar फ़ाइल, आदि जैसी रनटाइम सुविधाएं प्रदान करता है।
JDK का मतलब जावा डेवलपमेंट किट है। इसमें जावा प्रोग्रामिंग में उपयोग किए जाने वाले सभी आवश्यक घटक शामिल हैं जैसे कि क्लास, मेथड, स्विंग, AWT, पैकेज, जावा (इंटरप्रेटर), जेवैक (कंपाइलर), एप्लेटव्यूअर (एप्लेट एप्लिकेशन व्यूअर), आदि। निष्कर्ष के लिए, इसमें हर वो डिवेलपमेंट की आवश्यकता होती है। अनुप्रयोग, चाहे स्टैंडअलोन हो या वेब-आधारित।
JRE
JRE जावा रनटाइम एनवायरनमेंट के लिए एक संक्षिप्त रूप है। इसका उपयोग रनटाइम वातावरण प्रदान करने के लिए किया जाता है। यह JVM का कार्यान्वयन है। यह शारीरिक रूप से मौजूद है। इसमें लाइब्रेरीज़ / अन्य फ़ाइलों का सेट शामिल है, जो JVM रनटाइम पर उपयोग करता है।
JDK
JDK जावा विकास किट के लिए एक संक्षिप्त नाम है। यह शारीरिक रूप से मौजूद है। इसमें JRE + विकास उपकरण शामिल हैं।
लिंक: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
आमतौर पर, जब आप केवल अपने ब्राउज़र या कंप्यूटर पर जावा प्रोग्राम चलाने की परवाह करते हैं तो आप केवल JRE इंस्टॉल करेंगे। यह आप सभी की जरूरत है दूसरी ओर, यदि आप कुछ जावा प्रोग्रामिंग करने की योजना बना रहे हैं, तो आपको जेडीके की भी आवश्यकता होगी।
JVM, JRE और JDK प्लेटफ़ॉर्म डिपेंडेंट हैं क्योंकि प्रत्येक OS का कॉन्फ़िगरेशन अलग-अलग होता है। लेकिन, जावा प्लेटफॉर्म स्वतंत्र है।
जावा वर्चुअल मशीन (JVM) एक रन-टाइम सिस्टम है जो जावा बायटेकोड को निष्पादित करता है।
JRE जावा अनुप्रयोगों को चलाने के लिए आवश्यक पर्यावरण (मानक पुस्तकालय और JVM) है।
JDK में JRE प्लस कमांड-लाइन डेवलपमेंट टूल जैसे कंपाइलर और डीबगर्स शामिल हैं जो एप्लेट्स और एप्लिकेशन विकसित करने के लिए आवश्यक या उपयोगी हैं।
यहाँ पर Oracle http://docs.oracle.com/javase/7/docs/technotes/guides/ से सीधे साधा जवाब दिया गया है
जावा एसई रनटाइम पर्यावरण (JRE)
JRE पुस्तकालयों, जावा वर्चुअल मशीन, और अन्य घटकों को जावा प्रोग्रामिंग भाषा में लिखे गए एप्लेट और एप्लिकेशन चलाने के लिए आवश्यक प्रदान करता है। यह रनटाइम वातावरण उन्हें मुक्त करने के लिए अनुप्रयोगों के साथ पुनर्वितरित किया जा सकता है।
जावा एसई विकास किट (JDK)
JDK में JRE प्लस कमांड-लाइन डेवलपमेंट टूल जैसे कंपाइलर और डीबगर्स शामिल हैं जो एप्लेट्स और एप्लिकेशन विकसित करने के लिए आवश्यक या उपयोगी हैं।
यदि आप जावा प्रोग्राम चलाना चाहते हैं, लेकिन उन्हें विकसित नहीं करते हैं, तो जावा रन-टाइम एनवायरनमेंट, या जेआरई डाउनलोड करें। यदि आप उन्हें विकसित करना चाहते हैं, तो जावा डेवलपमेंट किट, या जेडीके डाउनलोड करें
चलो कहा जाता है कि JDK एक किट है, जिसमें शामिल हैं कि वे कौन सी चीजें हैं जो जावा एप्लिकेशन को विकसित और चलाने के लिए आवश्यक हैं।
JDK को अनुप्रयोगों, घटक एस और एप्लेट के निर्माण के लिए विकास के वातावरण के रूप में दिया जाता है।
इसमें वह सब कुछ है जो आपको संकलित रूप में जावा अनुप्रयोगों को चलाने की आवश्यकता है। आप किसी भी पुस्तकालयों और अन्य सामान की जरूरत नहीं है। आपकी जरूरत की सभी चीजें संकलित हैं।
JRE का उपयोग विकास के लिए नहीं किया जाता है, केवल अनुप्रयोगों को चलाने के लिए उपयोग किया जाता है।
जेवीएम (जावा वर्चुअल मशीन) एक अमूर्त मशीन है। यह एक विनिर्देश है जो रनटाइम वातावरण प्रदान करता है जिसमें जावा बाइटकोड को निष्पादित किया जा सकता है।
JRE जावा रनटाइम एनवायरनमेंट के लिए एक संक्षिप्त रूप है। इसका उपयोग रनटाइम वातावरण प्रदान करने के लिए किया जाता है। यह JVM का कार्यान्वयन है। यह शारीरिक रूप से मौजूद है। इसमें लाइब्रेरीज़ + अन्य फ़ाइलों का सेट शामिल है, जो JVM रनटाइम पर उपयोग करता है।
JDK जावा विकास किट के लिए एक संक्षिप्त नाम है। यह शारीरिक रूप से मौजूद है। इसमें JRE + विकास उपकरण शामिल हैं
यदि आप एक जावा प्रोग्रामर हैं तो आपको अपने सिस्टम में JDK की आवश्यकता होगी और इस पैकेज में JRE और JVM भी शामिल होंगे लेकिन यदि आप सामान्य उपयोगकर्ता हैं जो ऑनलाइन गेम खेलना पसंद करते हैं तो आपको केवल JRE की आवश्यकता होगी और इस पैकेज में JDK नहीं होगा ।
JVM
जेवीएम (जावा वर्चुअल मशीन) एक अमूर्त मशीन है। यह एक विनिर्देश है जो रनटाइम वातावरण प्रदान करता है जिसमें जावा बाइटकोड को निष्पादित किया जा सकता है।
जेवीएम कई हार्डवेयर और सॉफ्टवेयर प्लेटफार्मों के लिए उपलब्ध हैं। JVM, JRE और JDK प्लेटफ़ॉर्म डिपेंडेंट हैं क्योंकि प्रत्येक OS का कॉन्फ़िगरेशन अलग-अलग होता है। लेकिन, जावा प्लेटफॉर्म स्वतंत्र है।
JRE
इसमें वह सब कुछ है जो आपको संकलित रूप में जावा अनुप्रयोगों को चलाने की आवश्यकता है। आप किसी भी पुस्तकालयों और अन्य सामान की जरूरत नहीं है। आपकी जरूरत की सभी चीजें संकलित हैं।
JRE का उपयोग विकास के लिए नहीं किया जाता है, केवल अनुप्रयोगों को चलाने के लिए उपयोग किया जाता है।
जावा एसई विकास किट (JDK)
JDK में JRE प्लस कमांड-लाइन डेवलपमेंट टूल जैसे कंपाइलर और डीबगर्स शामिल हैं जो एप्लेट्स और एप्लिकेशन विकसित करने के लिए आवश्यक या उपयोगी हैं।
(स्रोत: GeeksForGeeks क्यू एंड ए , जावा प्लेटफॉर्म अवलोकन )
इन शर्तों (JVM, JDK, JRE) की स्पष्ट समझ उनके उपयोग और अंतर को समझने के लिए आवश्यक है।
जेवीएम जावा वर्चुअल मशीन (जेवीएम) एक रन-टाइम सिस्टम है जो जावा बाइटकोड को निष्पादित करता है। JVM एक आभासी कंप्यूटर की तरह है जो संकलित निर्देशों के एक सेट को निष्पादित कर सकता है और मेमोरी स्थानों में हेरफेर कर सकता है। जब एक जावा कंपाइलर स्रोत कोड संकलित करता है, तो यह एक .class फ़ाइल में bytecode नामक निर्देशों का एक अत्यधिक अनुकूलित सेट उत्पन्न करता है। JVM इन बाइटकोड निर्देशों की व्याख्या करता है और उन्हें निष्पादन के लिए मशीन-विशिष्ट कोड में परिवर्तित करता है।
JDK जावा डेवलपमेंट किट (JDK) एक सॉफ्टवेयर डेवलपमेंट वातावरण है जिसका उपयोग आप जावा अनुप्रयोगों को विकसित और निष्पादित करने के लिए कर सकते हैं। इसमें JRE और प्रोग्रामिंग उपकरण का एक सेट शामिल है, जैसे कि जावा कंपाइलर, दुभाषिया, एप्लेटव्यूअर, और दस्तावेज़ दर्शक। जेडीके जावा एसई, जावा ईई या जावा एमई प्लेटफार्मों के माध्यम से कार्यान्वित किया जाता है।
JRE जावा रनटाइम एनवायरनमेंट (JRE) JDK का एक हिस्सा है जिसमें JVM, कोर क्लासेस और कई लाइब्रेरी शामिल हैं जो एप्लिकेशन डेवलपमेंट को सपोर्ट करती हैं। हालांकि JRE JDK के भाग के रूप में उपलब्ध है, आप इसे अलग से डाउनलोड और उपयोग भी कर सकते हैं।
पूरी समझ के लिए आप मेरा ब्लॉग देख सकते हैं: Jdk Jre Jvm और अंतर
jdk कोड को संकलित करने और java कोड को बाइट कोड में परिवर्तित करने के लिए आवश्यक है जबकि jre बाइट कोड को निष्पादित करने के लिए आवश्यक है।
JDK में JRE प्लस कमांड-लाइन डेवलपमेंट टूल जैसे कंपाइलर और डीबगर्स शामिल हैं जो ऐपलेट और एप्लिकेशन विकसित करने के लिए आवश्यक या उपयोगी हैं।
JRE मूल रूप से जावा वर्चुअल मशीन है जहाँ आपके जावा प्रोग्राम चलते हैं। इसमें एप्लेट निष्पादन के लिए ब्राउज़र प्लगइन्स भी शामिल हैं।
JDK एक अमूर्त मशीन है। यह एक विनिर्देश है जो रनटाइम वातावरण प्रदान करता है जिसमें जावा बाइटकोड को निष्पादित किया जा सकता है।
इसलिए, @ जैमिन पटेल के अनुसार मूल रूप से JVM <JRE <JDK ने कहा।
मान लीजिए, यदि आप एक डेवलपर हैं तो आपकी भूमिका कार्यक्रम को विकसित करने के साथ-साथ कार्यक्रम को निष्पादित करने की भी है। इसलिए आपके पास विकास और निष्पादन के लिए वातावरण होना चाहिए, जो कि JDK द्वारा प्रदान किया गया है।
मान लीजिए, यदि आप एक ग्राहक हैं, तो आपको विकसित होने के बारे में चिंता करने की ज़रूरत नहीं है। बस आपको जरूरत है, प्रोग्राम चलाने और परिणाम प्राप्त करने का वातावरण, जो कि JRE द्वारा प्रदान किया जाता है।
JRE एप्लिकेशन को कार्यान्वित करता है लेकिन JVM निर्देश रेखा को रेखा से पढ़ता है इसलिए यह दुभाषिया है।
JDK = JRE + विकास उपकरण
JRE = JVM + लाइब्रेरी क्लासेस
JRE
JRE जावा रनटाइम एनवायरनमेंट के लिए एक परिचित है। इसका उपयोग रनटाइम वातावरण प्रदान करने के लिए किया जाता है। यह JVM का कार्यान्वयन है। यह शारीरिक रूप से मौजूद है। इसमें लायब्रेरी + अन्य फ़ाइलों का सेट है जो JVM रनटाइम में उपयोग करता है।
JVM का कार्यान्वयन Sun Micro Systems के अलावा अन्य कंपनियों द्वारा भी सक्रिय रूप से जारी किया जाता है।
JDK
JDK जावा विकास किट के लिए एक संक्षिप्त नाम है। यह शारीरिक रूप से मौजूद है। इसमें JRE + विकास उपकरण शामिल हैं।