JDK और JRE: क्या अंतर है? शुरुआती लोगों के लोकप्रिय प्रश्न का विश्लेषण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JDK या JRE: शुरुआती को क्या चुनना चाहिए? एक बार और हमेशा के लिए समझें

\n\n

यदि आप अभी Java की दुनिया में अपनी यात्रा शुरू कर रहे हैं, तो देर-सबेर आपको इस प्रश्न का सामना करना पड़ेगा: "आखिर मुझे क्या डाउनलोड करना चाहिए? JDK, JRE, या शायद सिर्फ JVM ही काफी है?" यह प्रश्न इतना लोकप्रिय है कि Stack Overflow पर इसने हजारों बार देखा गया है और दर्जनों उत्तर मिले हैं। और यह कोई संयोग नहीं है - इन संक्षिप्ताक्षरों के बीच भ्रम आपकी पहली परियोजना को शुरुआत में ही बर्बाद कर सकता है।

\n\n

कल्पना करें कि Java एक रसोई है। JRE एक तैयार रेस्तरां है, जहाँ आप आकर खा सकते हैं। और JDK स्वयं रसोई है जिसमें स्टोव, चाकू और कुकबुक हैं, जहाँ आप कुछ भी पका सकते हैं। क्या आपको अंतर महसूस होता है? आइए सब कुछ स्पष्ट रूप से समझते हैं, ताकि आपको फिर कभी संदेह न हो कि क्या डाउनलोड करना है।

\n\n

मुख्य बातें संक्षेप में: JVM, JRE, JDK

\n\n

विवरण में जाने से पहले, आइए बुनियादी पदानुक्रम को समझें। कई शुरुआती सोचते हैं कि ये तीन अलग-अलग उत्पाद हैं। वास्तव में, यह एक मैत्रियोश्का (रूसी गुड़िया) की तरह है, जहाँ एक घटक दूसरे के अंदर स्थित है।

\n\n
    \n
  • JVM (Java Virtual Machine) — यह दिल है। एक वर्चुअल मशीन जो बाइट-कोड को निष्पादित करती है। यह अपने आप में बेकार है, जैसे बिना कार के इंजन।
  • \n
  • JRE (Java Runtime Environment) — यह JVM + मानक पुस्तकालयों का सेट है (उदाहरण के लिए, java.lang, java.util)। यह तैयार Java प्रोग्राम चलाने का वातावरण है।
  • \n
  • JDK (Java Development Kit) — यह JRE + डेवलपर टूल है: कंपाइलर javac, डीबगर jdb, उपयोगिता javadoc और अन्य।
  • \n
\n\n

एक सरल सूत्र जो याद रखना चाहिए:

\n\n
JDK = JRE + विकास उपकरण\nJRE = JVM + पुस्तकालय
\n\n

अब, जब आप Oracle वेबसाइट पर "Download JDK" लाइन देखते हैं, तो आप जानते हैं कि इसमें कोड चलाने और लिखने दोनों के लिए सब कुछ शामिल है।

\n\n

अगर JDK है तो JRE की आवश्यकता क्यों है?

\n\n

अच्छा प्रश्न है। यदि JDK में JRE शामिल है, तो "सिर्फ रनटाइम वातावरण" डाउनलोड करने की आवश्यकता क्यों है? इसका कारण आकार और लक्षित दर्शक हैं।

\n\n

कल्पना करें कि आपने Java में एक सुपर गेम बनाया है और अपने दोस्त को खेलने देना चाहते हैं। आपका दोस्त प्रोग्रामर नहीं है। वह कुछ भी कंपाइल नहीं करने वाला है। उसे केवल .jar फ़ाइल चलाने के लिए एक "बॉक्स" चाहिए। उसे लगभग 300 MB का पूरा JDK देना व्यर्थ है। JRE कम जगह लेता है (लगभग 100-150 MB) और इसमें अतिरिक्त उपकरण नहीं होते जो सामान्य उपयोगकर्ता को भ्रमित करते हैं।

\n\n

यही कारण है कि Java डाउनलोड करने वाली साइटों पर सामान्य उपयोगकर्ताओं को JRE की पेशकश की जाती है। और डेवलपर्स को JDK। नवीनतम संस्करणों (Java 11+) में, Oracle ने और आगे बढ़कर वास्तव में उन्हें एकीकृत कर दिया, JDK को एक "स्व-निहित" मॉड्यूल बना दिया। लेकिन अवधारणात्मक रूप से अंतर बना हुआ है।

\n\n

कैसे जांचें कि आपके पास क्या स्थापित है?

\n\n

सबसे आसान तरीका है टर्मिनल (कमांड लाइन) खोलना और कुछ कमांड दर्ज करना। इससे आप घंटों गूगलिंग से बच जाएंगे जब कुछ गलत होता है।

\n\n

चरण 1. Java (JRE) का संस्करण जांचें:

\n\n
java -version
\n\n

यदि JRE स्थापित है, तो आपको कुछ इस तरह दिखाई देगा:

\n\n
java version "17.0.2" 2022-01-18 LTS\nJava(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
\n\n

चरण 2. कंपाइलर (JDK) जांचें:

\n\n
javac -version
\n\n

यदि आप देखते हैं:

\n\n
javac 17.0.2
\n\n

बधाई हो! आपके पास JDK स्थापित है। यदि कमांड नहीं मिलती है, तो आपके पास या तो केवल JRE है, या Java पर्यावरण चर (PATH) में सेट नहीं है।

\n\n

जीवन से एक उदाहरण: क्यों JDK के बिना आप कोड नहीं लिख सकते

\n\n

आइए एक स्थिति की कल्पना करें। आपने केवल JRE स्थापित किया है (उदाहरण के लिए, Minecraft खेलने के लिए)। आप नोटपैड खोलते हैं और अपना पहला "Hello, World!" लिखते हैं:

\n\n
public class HelloWorld {\n    public static void main(String[] args) {\n        System.out.println("नमस्ते, दुनिया!");\n    }\n}
\n\n

फ़ाइल को HelloWorld.java के रूप में सहेजें।

ब्लॉग

पुस्तक अनुशंसाएँ