Windows JAVA_HOME को अनदेखा करता है: JDK को डिफ़ॉल्ट के रूप में कैसे सेट करें?


89

मैं JRE के बजाय JDK का उपयोग करने के लिए Windows को कैसे राजी करूंगा?

यह प्रश्न पहले, यहां और अन्य जगहों से पूछा गया है:

मैं डिफ़ॉल्ट जावा इंस्टॉलेशन / रनटाइम (विंडोज) कैसे सेट करूं?

परेशानी यह है कि विंडोज उपेक्षा करता है JAVA_HOMEऔर यह इस तथ्य को भी अनदेखा करता है कि मैंने जेडडीके बिन निर्देशिका को पथ में पहली प्रविष्टि बनाया।

जब मैं java -versionकमांड लाइन से चलाता हूं, तो मेरे JDK 1.6 इंस्टॉलेशन को लागू करने के बजाय, यह 1.7 JRE चलाता है।

मेरा अनुमान है कि यह 1.7 के लिए विशिष्ट समस्या है, और विंडोज 7 कुछ ऐसा कर रहा है जो इसे रजिस्ट्री के साथ नहीं करना चाहिए।

कोई राय कि इसे कैसे ठीक किया जाए?

संपादित करें : उफ़। मैंने "ऊपर की कक्षा में पहली प्रविष्टि" लिखी, जब मेरा मतलब "पथ" था। माफ़ करना।

जवाबों:


131

Windows पर, javaनिष्पादन योग्य चलाने के लिए जावा के डिफ़ॉल्ट संस्करण का पता लगाने के लिए Windows रजिस्ट्री का उपयोग करता है।

java.exeचलाने की प्रतिलिपि PATHपर्यावरण चर का उपयोग करके पाई जाती है । जब तक आप इसे बदलने के लिए कदम नहीं उठाते, तब तक डिफ़ॉल्ट रूप से एक प्रति विंडोज निर्देशिका में मिल जाएगी। चूँकि यह प्रतिलिपि जावा रनटाइम निर्देशिका में नहीं है, इसलिए यह रजिस्ट्री को देखकर पता लगाता है।

तो, आपको या तो रजिस्ट्री को संशोधित करने की आवश्यकता है, या आपके द्वारा विंडोज डायरेक्टरी से पहले जावा का संस्करण डालना चाहिए PATH


11
यहां ओ.पी. ऊपर मेरा संपादन देखें। हाँ, यह हल है। दो नोट: सबसे पहले, यह प्रतीत होता है कि जावा इंस्टॉलर ने वास्तव में Windows \ System32 में java.exe डाला था। यह मेरे लिए अचरज की बात है। दूसरा, जब आप कंप्यूटर / प्रॉपर्टीज / एडवांस्ड सिस्टम सेटिंग्स / एनवायरनमेंट वेरिएबल्स के तहत पथ को संशोधित करते हैं, तो आपको सिस्टम पथ को संशोधित करना होगा , उपयोगकर्ता पथ को नहीं। सिस्टम पथ खुद को पहले रखता है।
17

2
मैं user237815 के बिंदु को भी रेखांकित करूंगा कि ऐसा लगता है कि जावा इंस्टॉलर वास्तव में अपने java.exe को Windows \ System32 में छोड़ देता है। यह निश्चित रूप से मेरे लिए सहज नहीं था। "Java -version" को कंसोल से चेक करने के बाद ही मुझे कोई कम्फ़र्ट लेवल हासिल हुआ जो कि Windows अब java.exe का उपयोग कर रहा था जो मैं अपने JDK इंस्टालेशन से चाहता था बजाय कुछ पिछले और अवांछित वर्जन से।
जॉन टोबलर

17
मेरे Windows / System32 फ़ोल्डर में java.exe, javaw.exe, और javaws..exe का नाम बदलकर मेरे मामले में भी समस्या हल हो गई थी। तब, और उसके बाद ही, java -version उस संस्करण को दिखाता है जो JAVA_HOME और PATH में सेट है
Inversus

6
आपने मेरा दिन बचाया! PATH में विंडोज से पहले JDK से संबंधित प्रविष्टि को स्थानांतरित करने से समस्या हल हो गई। आपको बहुत - बहुत धन्यवाद!
the_dark_destructor 16

9
मैंने विंडोज 10 पर चर %JAVA_HOME%\binकी पहली स्थिति में रखा pathऔर मेरे लिए काम किया।
वेंडेल

30

विंडोज 8 में, आप C:\ProgramData\Oracle\Java\javapath निर्देशिका को हटाना चाह सकते हैं ।

रास्ते से

इसने मेरी समस्या हल कर दी।


5
विंडोज़ 10 में, इसके: C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath। यह सिस्टम पाथ वेरिएबल में अपने आप जुड़ जाता है। हटाएं कि ans आपके कस्टम पथ स्थान को सेट करता है।
डेक्सटर

1
उपरोक्त टिप्पणी से विंडोज़ 10 के मामले में मदद मिली
सबा आहंग

23

मेरे पास भी यह मुद्दा है। मैं 1.6 चला रहा हूं, लेकिन 1.5 के साथ काम कर रहा कोड बनाना चाहता हूं। मैंने बदल दिया हैJAVA_HOME और PATH(दोनों उपयोगकर्ता और सिस्टम) कोई लाभ नहीं हुआ।

जवाब है कि 1.6 के लिए संस्थापक गिरा दिया java.exe, javaw.exeऔरjavaws.exe मेरी में Windows\System32फ़ोल्डर (विंडोज 7)।

मैं करने के लिए उन फ़ाइलों का नाम बदलकर इसे हल java_wrong.exe, javaw_wrong.exe, और javaws_wrong.exe। केवल करने के बाद कि के रूप में के रूप में परिभाषित यह जावा का सही संस्करण लेने करता है JAVA_HOMEऔर PATH। मैंने फ़ाइलों का नाम इस प्रकार बदला क्योंकि उन्हें आसानी से प्रतिवर्ती तरीके से हटा दिया गया।

उम्मीद है की यह मदद करेगा!


10
नाम बदलने के बजाय, आप PATH वैरिएबल को पहले मान% JAVA_HOME% \ बिन के रूप में संशोधित कर सकते हैं, इस तरह यह पहला मूल्य होगा जो इसे ले जाएगा
अधिकतम

1
@maxivis धन्यवाद मुझे लगता है कि समस्या पैठ तत्वों का आदेश हो सकती है जैसे कि विंडोज \ System32 JAVA_HOME से पहले थी। मैंने बस उनका नाम बदल दिया ताकि वे प्रतिवर्ती तरीके से प्रभावी रूप से हटा दिए जाएं।
इन्वर्टस

किसी तरह रास्ते में JAVA_HOME सेट करना मेरे लिए किसी भी तरह से काम नहीं कर रहा था, यह वास्तव में इसे हल करता है।
गुइलहर्मे ओरियोली

12

विंडोज कुछ भी अनदेखा नहीं करता है। यह आपके सेटअप के साथ एक समस्या है; विंडोज सिर्फ वही प्रदान करता है जो आप प्रदान करते हैं। इसका कोई विशेष ज्ञान नहीं हैJAVA_HOME

CLASSPATHविंडोज से कोई लेना-देना नहीं है। विंडोज के लिए यह केवल एक पर्यावरणीय चर है जो एक फ़ोल्डर स्थान में विस्तारित हो जाता है।

अपने %PATH%पर्यावरण चर की जाँच करें । यह वही है जो विंडोज को एक के बाद एक बना रहा है। पथ (जिस पोस्ट को आपने कहा से लिंक किया है) को इंगित करना चाहिए%JAVA_HOME%\bin;<remainder of path> । दोबारा, आपके द्वारा लिंक की गई पोस्ट आपको बैच फ़ाइल का उपयोग करके इसे सेट करने का तरीका बताती है।

(अन्य लोगों के लिए जो यह नहीं जानते हैं:% PATH% का निरीक्षण करने का सबसे आसान तरीका एक कमांड प्रॉम्प्ट और प्रकार खोलना है echo %PATH%। आप Computerप्रारंभ मेनू के दाहिने फलक पर राइट-क्लिक करके भी चुन सकते हैं Properties, और फिर Advanced System Settings, और tne Environmental Variablesबटन।)


@ हेरिकसन: ठीक है। धन्यवाद - मैं इसे सही करूँगा। यह अभी भी विंडोज के साथ कुछ नहीं करना है, हालांकि, जो मेरे जवाब का बिंदु था। :)
केन व्हाइट

समझ में आया, मैं बस इस बात से चिंतित था कि एक नई गलत धारणा बनाई जा सकती है; जावा JAVA_HOMEविंडोज के बारे में अधिक कुछ नहीं जानता है।
इरिकसन

मैं सुधार की सराहना करता हूं। मैं स्वयं जावा व्यक्ति नहीं हूं (आज तक का सीमित अनुभव), इसलिए भविष्य के संदर्भ के लिए यह जानना अच्छा है।
केन व्हाइट

1
JAVA_HOMEजावा स्थापना के मूल में सेट किया जाना चाहिए। रास्ता होना चाहिए %JAVA_HOME%\bin;&lt;remainder of path%gt;, अन्यथा आप जावा, जावा, आदि के "नहीं" खोजने के साथ हवा करेंगे, विंडोज वास्तव में केवल PATHचर को देखता है , लेकिन कुछ जावा संबंधित उपकरण इस JAVA_HOMEअवसर पर देखते हैं ।
एडविन बक

@ ईडविन: लापता के \binरूप में अच्छी तरह से तय की । धन्यवाद।
केन व्हाइट

6

मेरी भी यही समस्या थी। मेरे पास स्थापित जावा संस्करणों का एक गुच्छा है और किसी कारण से जावा 1.7 जावा 1.6 के बजाय इस्तेमाल किया जा रहा था, भले ही मैंने 1.6 (सी: \ jdk1.6.0_45_32 \ बिन) का उपयोग करने के लिए पथ में निर्दिष्ट किया था।

मुझे JDK के पथ को स्थानांतरित करना था जिसे मैं (1.6) का उपयोग करना चाहता था (PATH पर्यावरण चर में पहली प्रविष्टि) होना सुनिश्चित करने के लिए कि विंडोज 1.7 के बजाय 1.6 का उपयोग करता है।

इसलिए, उदाहरण के लिए, पहले पाथ पर्यावरण चर था:

C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin

और जब मैंने पहली बार jdk को स्थानांतरित किया, तो यह काम किया:

C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin

मुझे लगता है कि जावा 1.7 के विंडोज इंस्टॉलर ने इसे पहले से ही कुछ अन्य निर्देशिका में स्थापित किया है, इस प्रकार पहले निर्दिष्ट पैथ प्रविष्टि C: \ jdk1.6.0_45_32 \ bin के बजाय पहले उपयोग किया जा रहा है;


धन्यवाद भाई। पथ चर के पहले तत्व के रूप में JAVA_HOME \ bin पथ को ले जाने से मेरी जान बच गई।
MER TAŞCI

4

'Path'वेरिएबल में मेरे केस के लिए ' C:\ProgramData\Oracle\Java\javapath;' जैसा एक पैरामीटर जोड़ा गया था । यह स्थान था java.exe, javaw.exeऔर javaws.exeजावा 8 से जो नव स्थापित हैjdk.exe ओरेकल के से ।

मैंने यह पाठ पथ से हटा दिया है जहाँ मेरा पथ पहले से ही है %JAVA_HOME%\bin ही है।

अब, चर 'JAVA_HOME'मेरे जावा संस्करण को नियंत्रित कर रहा है जो मैं चाहता हूं।


4

यहाँ छवि विवरण दर्ज करेंमान लीजिए कि आपने JDK 8 के बाद JDK 10 को स्थापित किया है और सिस्टम वातावरण वैरिएबल सेट पथ जैसे "C: \ ProgramData \ Oracle \ Java \ javapath" में है, तो इस संस्करण द्वारा जावा संस्करण नियंत्रण। यह JAVA_HOME यहां तक ​​कि jdk 1.8 पथ सेट को अनदेखा करेगा, इसलिए JAVA_HOME पथ के प्रभाव को प्राप्त करने के लिए पथ में "C: \ ProgramData \ Oracle \ Java \ javapath" को हटा दें


2

मेरे पास जावा 7 और 8 स्थापित था और मैं जावा 7 पर पुनर्निर्देशित करना चाहता हूं, लेकिन मेरी cmd प्रॉम्प्ट विंडो में जावा संस्करण जावा 8 दिखाता है।
जावा 7 बिन निर्देशिका पथ ( C: \ Program Files \ Java \ jdk1.7.0_10 \ bin ) जोड़ा गया पथ चर अंत में, लेकिन बाहर काम नहीं किया और जावा 8 दिखाता है। इसलिए मैंने जावा 7 पथ को पथ मूल्य की शुरुआत में बदल दिया और यह काम किया।
एक नई cmd प्रॉम्प्ट विंडो खोली और मेरे जावा संस्करण की जाँच की और अब यह जावा 7 दिखाता है



1

मेरे मामले में मेरे पास जावा 7 और 8 (दोनों x64) स्थापित थे और मैं जावा 7 पर पुनर्निर्देशित करना चाहता हूं, लेकिन जावा 8 का उपयोग करने के लिए सब कुछ निर्धारित है। जावा पैथ पर्यावरण चर का उपयोग करता है:

C: \ ProgramData \ ओरेकल \ जावा \ javapath

इसके फ़ोल्डर रनटाइम को देखने के लिए पहला विकल्प के रूप में (एक छिपा हुआ फ़ोल्डर है)। इस पथ में 3 सिम्लिंक हैं जिन्हें संपादित नहीं किया जा सकता है।

मेरे पीसी में, PATH पर्यावरण चर इस तरह दिखता है:

C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Windows \ System32; C: \ Program Files \ Java \ jdk1.7.0_21 \ bin;

मेरे मामले में, इसे इस तरह दिखना चाहिए:

C: \ Windows \ System32; C: \ Program Files \ Java \ jdk1.7.0_21 \ bin;

मुझे सिम्बल को कहीं और काटना और चिपकाना था इसलिए जावा उन्हें नहीं मिला, और मैं उन्हें बाद में पुनर्स्थापित कर सकता हूं।

JAVA_HOME और JRE_HOME वातावरण चर को वांछित जावा फ़ोल्डर के रनटाइम में सेट करने के बाद (मेरे मामले में यह जावा 7 है), कमांड java -versionको आपका वांछित जावा रनटाइम दिखाना चाहिए। मुझे लगता है कि रजिस्ट्री के साथ गड़बड़ करने की कोई आवश्यकता नहीं है।

Win7 x64 पर परीक्षण किया गया।


1

यह समस्या संभवतः आपके सिस्टम में स्थापित जावा के पुराने संस्करणों के कारण है। पहले अपने पर्यावरण चर को सावधानी से जांचें और JAVA के पिछले संस्करणों से संबंधित सभी पर्यावरण चर को हटा दें और उन रास्तों को बदल दें

C:\Program Files\Java\<your new jdk version>\bin

0

यहां एक अतिरिक्त कारक है; जावा निष्पादक के अलावा, जावा इंस्टॉलेशन जहाँ भी आप इसे डालने के लिए कहते हैं, उन्हें विंडोज़ पर, java इंस्टॉलर आपके विंडोज़ सिस्टम 32 डाइरेक्टरी में उन एक्जीक्यूटिव्स की कुछ प्रतियाँ डालता है, इसलिए आप संभवतः हर जावा इम्प्लीमेंटेबल का उपयोग कर रहे होंगे। हाल ही में स्थापित।


0

यदि आप Windows सेवा के रूप में .BAT फ़ाइल का उपयोग कर रहे हैं, तो मैं सही जावा संस्करण को इंगित करने के लिए% JAVA_HOME% को बदलने के बाद Windows सेवा की स्थापना रद्द करने और इसे फिर से पुनर्स्थापित करने का सुझाव दूंगा।


0

कुछ समय के लिए इस मुद्दे से जूझने और इसके बारे में शोध करने के बाद, मैं आखिरकार इन चरणों का पालन करते हुए इसे हल करने में कामयाब रहा:

1) स्थापित करें jdk संस्करण 12
2) सिस्टम चर
3 में नया चर बनाएँ ) इसे JAVA_HOME के ​​रूप में नाम दें और jdk संस्थापन पथ दें
4) इस चर को पथ में जोड़ें और इसे शीर्ष पर ले जाएँ।
5) C: \ Program Files (86) \ Common Files \ Oracle \ Java \ javapath पर जाएं और java.exe और javaw.exe को उसी फ़ाइलों के साथ pathtojavajdk / bin फ़ोल्डर से समान नामों से बदलें

अंत में, मैंने "java -version" के साथ cmd में जावा के डिफ़ॉल्ट संस्करण की जाँच की और यह काम कर गया!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.