हमें यहां दो पर्यावरण चरों के बीच अंतर करने की आवश्यकता है, जो यहां परस्पर चर्चा की गई है। एक JAVA_HOME चर है। अन्य पथ चर है। JAVA_HOME चर का संदर्भ देने वाली कोई भी प्रक्रिया JDK के लिए खोज पथ की तलाश कर रही है, JRE की नहीं। जावा कंपाइलर के लिए JAVA_HOME चर का उपयोग स्वयं के लिए नहीं है। संकलक को अपने स्वयं के स्थान के बारे में पता है। वेरिएबल अन्य सॉफ्टवेयर के लिए है जो कंपाइलर का आसानी से पता लगा सकता है। यह चर आमतौर पर आईडीई सॉफ्टवेयर द्वारा जावा स्रोत कोड से अनुप्रयोगों को संकलित करने और बनाने के लिए उपयोग किया जाता है। इसके विपरीत, विंडोज सीएमडी दुभाषिया, और कई अन्य पहले और तीसरे पक्ष के सॉफ़्टवेयर पथ चर का संदर्भ देते हैं, न कि JAVA_OME चर।
केस 1 का उपयोग करें: सीएमडी से संकलन
उदाहरण के लिए, यदि आप किसी आईडीई सॉफ्टवेयर का उपयोग नहीं कर रहे हैं, और आप सिर्फ सीएमडी से संकलित करना चाहते हैं, जो आपकी वर्तमान कार्यशील निर्देशिका से स्वतंत्र है, तो आप जो चाहते हैं वह पथ चर को सही ढंग से सेट करना है। आपके मामले में, आपको JAVA_HOME चर की भी आवश्यकता नहीं है। क्योंकि CMD पथ का उपयोग कर रहा है, जावा कंपाइलर का पता लगाने के लिए JAVA_HOME नहीं।
केस 2 का उपयोग करें: आईडीई से संकलन
हालांकि, यदि आप कुछ आईडीई सॉफ्टवेयर का उपयोग कर रहे हैं , तो आपको सबसे पहले प्रलेखन को देखना होगा। इसे JAVA_HOME सेट करने की आवश्यकता हो सकती है, लेकिन यह उसी उद्देश्य के लिए किसी अन्य चर नाम का भी उपयोग कर सकता है। पिछले कुछ वर्षों में वास्तविक मानक JAVA_HOME रहा है, लेकिन यह हमेशा ऐसा नहीं हो सकता है।
केस 3 का उपयोग करें: आईडीई और सीएमडी से संकलन
यदि IDE सॉफ़्टवेयर के अलावा आप CMD से भी संकलित करना चाहते हैं, जो आपकी वर्तमान कार्यशील निर्देशिका से स्वतंत्र है, तो JAVA_HOME चर के अलावा आपको JDK खोज पथ को पथ चर में जोड़ने की आवश्यकता हो सकती है।
JAVA_HOME बनाम पथ
यदि आपकी समस्या जावा संकलित करने से संबंधित है, तो आप JAVA_HOME चर और पथ (जहाँ लागू हो) की जाँच करना चाहते हैं। यदि आपकी समस्या जावा अनुप्रयोगों को चलाने से संबंधित है, तो आप अपने पथ चर की जांच करना चाहते हैं।
पथ चर का उपयोग सभी ऑपरेटिंग सिस्टमों में सार्वभौमिक रूप से किया जाता है। क्योंकि यह सिस्टम द्वारा परिभाषित किया गया है, और क्योंकि यह डिफ़ॉल्ट चर है जो JRE का पता लगाने के लिए उपयोग किया जाता है, जावा अनुप्रयोगों को चलाने में लगभग कोई समस्या नहीं है। विशेष रूप से विंडोज पर नहीं जहां सॉफ्टवेयर इंस्टॉलर आमतौर पर आपके लिए सब कुछ सेट करता है। लेकिन अगर आप मैन्युअल रूप से इंस्टॉल कर रहे हैं, तो सबसे सुरक्षित बात यह है कि JAVA_HOME वैरिएबल को पूरी तरह से छोड़ दें और केवल JDK और JRE दोनों के लिए, पथ चर का उपयोग करें। एक आईडीई सॉफ्टवेयर के किसी भी हाल के संस्करण को इसका उपयोग करने और इसका उपयोग करने में सक्षम होना चाहिए।
सिमलिंक
प्रतीकात्मक लिंक मौजूदा पर्यावरण चर में से एक गुल्लक द्वारा JDK खोज पथ को संदर्भित करने का एक और तरीका प्रदान कर सकते हैं।
मुझे Oracle / Sun JDK / JRE रिलीज़ के पिछले संस्करणों के बारे में निश्चित नहीं है, लेकिन jdk1.8.0_74 के लिए कम से कम इंस्टॉलर खोज पथ C:\ProgramData\Oracle\Java\javapath
को पथ चर में जोड़ता है , और यह इसे स्ट्रिंग मान की शुरुआत में रखता है। इस निर्देशिका में JRE.exe में java.exe, javaw.exe और javaws..exe के प्रतीकात्मक लिंक हैं।
तो कम से कम Java 8 JDK के साथ, और संभवतः Java 8 JRE स्टैंडअलोन के लिए, JRE के लिए किसी भी पर्यावरण चर कॉन्फ़िगरेशन की आवश्यकता नहीं है। जब तक आप इसे स्थापित करने के लिए इंस्टॉलर पैकेज का उपयोग करते हैं। हालाँकि आपके विंडोज इंस्टॉलेशन पर मतभेद हो सकते हैं। ध्यान दें कि Oracle JRE JDK के साथ बंडल में आता है।
यदि आपको कभी पता चलता है कि आपका जावा जेडीके कॉन्फ़िगरेशन कंपाइलर के गलत संस्करण का उपयोग कर रहा है, या यह जादू द्वारा काम करता हुआ प्रतीत होता है, तो स्पष्ट रूप से परिभाषित किए बिना (वर्तनी को डाले बिना), तो आपके वातावरण में कहीं न कहीं एक सिमलिंक हो सकता है। । इसलिए आप सिमिलिंक के लिए जांच करना चाहते हैं।