विंडोज पर मावेन को स्थापित करने में असमर्थ: "JAVA_HOME एक अवैध निर्देशिका में सेट है"


98

मैंने पत्र को मावेन ट्यूटोरियल का पालन ​​किया लेकिन मैं अभी भी मावेन को विंडोज पर स्थापित नहीं कर सकता।

जब मैं कमांड प्रॉम्प्ट में निम्नलिखित चलाता हूं:

E:\Documents and Settings\zach>mvn --version

मुझे मिला:

'mvn' is not recognized as an internal or external command, operable program or batch file.

मैं मावेन फ़ोल्डर स्थापित करने के लिए नेविगेट किया और भाग गया mvn --versionऔर गया:

E:\java resources\apache-maven-2.2.0\bin>mvn --version
ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "E:\Sun\SDK\jdk\bin"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation

लेकिन जब मैं दौड़ता java -versionहूँ तो मुझे मिलता है:

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)

तो मैं जावा स्थापित है। समस्या क्या है क्याकिसी को पता हैं?

जवाबों:


172

समस्याओं को अपने रास्तों से करना है।

  1. सुनिश्चित करें कि निर्देशिका "E: \ java resource \ apache-maven-2.2.0 \ bin" आपके कमांड सर्च पथ पर है।

  2. सुनिश्चित करें कि JAVA_HOME चर आपके जावा इंस्टॉलेशन के लिए होम डायरेक्टरी को संदर्भित करता है । यदि आप जावा को "E: \ Sun \ SDK \ jdk \ bin" से निष्पादित कर रहे हैं, तो JAVA_HOME चर को "E: \ Sun \ SDK \ jdk" इंगित करना होगा।

    NB: JAVA_HOME को "\ bin" 1 के साथ समाप्त नहीं होना चाहिए ।

  3. सुनिश्चित करें कि आपने JAVA_HOME चर 2 में अर्धविराम नहीं लगाया है ।

    NB: JAVA_HOME एक एकल निर्देशिका नाम होना चाहिए, न कि "PATH-like" निर्देशिका नामों की सूची जो अर्धविरामों द्वारा अलग की गई है।

यह भी ध्यान रखें कि यदि आप मुख्य पैथनामों में रिक्त स्थान के बारे में विंडोज निर्देशों पर मेवेन में इस सलाह को अनदेखा कर चुके हैं, तो आप समस्याओं में भाग सकते हैं ।

"मावेन, कई क्रॉस-प्लेटफ़ॉर्म टूल की तरह, महत्वपूर्ण पथनामों में अंतरिक्ष वर्ण होने पर समस्याओं का सामना कर सकते हैं ।"

"आपको जावा एसडीके (उदाहरण के लिए ओरेकल की डाउनलोड साइट से) स्थापित करने की आवश्यकता है, और आपको इसे बिना रिक्त स्थान के एक पथनाम में स्थापित करना चाहिए , जैसे कि c: \ j2se1.6।" '

"आपको मेवेन वितरण को अनपैक करने की आवश्यकता है। इसे अपने स्रोत कोड के बीच में अनपैक न करें। कुछ स्थान चुनें ( पथ में कोई स्थान नहीं! ) और इसे वहां अनपैक करें।"

इसके लिए सरल उपाय यह होगा कि जावा या मावेन को अलग स्थान पर पुनः स्थापित किया जाए ताकि मार्ग में जगह बचे


1 - .... जब तक आपने अपने स्थापना स्थान के नाम के लिए एक पागल विकल्प नहीं बनाया है ।

2 - जाहिरा तौर पर विंडोज पथ की समस्याओं के लिए एक आम "वूडू" समाधान अर्धविराम को समाप्त करने के लिए है। यह सामान्य रूप से अनुशंसित नहीं है, बिल्कुल यहां काम नहीं करता है।


29

त्रुटि: JAVA_HOME एक अमान्य निर्देशिका में सेट है। JAVA_HOME = "E: \ Sun \ SDK \ jdk \ bin" कृपया अपने जावा इंस्टॉलेशन के स्थान से मिलान करने के लिए अपने वातावरण में JAVA_HOME चर सेट करें

JAVA_HOMEके लिए सेट किया जाना चाहिए E:\Sun\SDK\jdkPATHको शामिल करने के लिए सेट किया जाना चाहिए %JAVA_HOME%\bin


13

मैं इस मामले में एक ग्रिल स्थापित के साथ भाग गया।

समस्या मेरी JAVA_HOME थी c:\sun\jdk\और मेरे PATH की है%JAVA_HOME%bin

मैंने इसे बदल दिया: JAVA_HOME= "c:\sun\jdk" and PATH="%JAVA_HOME%\bin"

इसके बाद काम किया।


10

मैं एक ही मुद्दे का सामना कर रहा था और सिर्फ मेरे लिए काम किया JAVA_HOME अपडेट किया गया।

पहले यह इस तरह था: C: \ Program Files \ Java \ jdk1.6.0_45 \ bin बस \ बिन को हटा दिया और यह मेरे लिए काम किया।


4

मेरे वर्तमान कार्यस्थल पर सुरक्षा प्रतिबंधों के कारण मैं अपने विंडोज आधारित पीसी पर एनवायरमेंट वेरिएबल्स सेट करने में असमर्थ था।

मेरा वर्कअन% m% से mvn.bat फ़ाइल को C: \ WINNT में कॉपी करना और बैच फ़ाइल के शीर्ष पर निम्नलिखित जोड़ना था:

@REM Needed as unable to set env variables on my desktop PC.

set MAVEN_OPTS=-Xms256m -Xmx1024m
set M2_HOME=C:\apache-maven-3.0.4
set M2=%M2_HOME%\bin
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_15
set PATH=%JAVA_HOME%\bin;%M2%;%PATH%

सबसे अच्छा समाधान नहीं है, लेकिन यह काम करता है। अगर किसी के पास कोई अन्य तरीका या काम है, जहां मानक env var सिस्टम में सेट नहीं हो पा रहे हैं तो मैं उनकी प्रतिक्रिया का स्वागत करूंगा।


3

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

क्या काम था

  1. पर जाएँ C:\path\to\apache-maven-3.0.4\binऔर mvn.batफ़ाइल खोलें ।
  2. इस तरह दिखने वाली लाइन का पता लगाएं @SET JAVA_HOME=C:\progra~1\java\jdk1.7.0_03
  3. इसे सही रास्ते पर ले जाएं

मुझे नहीं पता कि यह विंडोज विशिष्ट है, लेकिन यह किसी की मदद कर सकता है!


2

बहुत असफल प्रयासों के बाद, मैंने इसका हल ढूंढ लिया

यह था ";" JAVA_HOME के ​​अंत में जो मैंने हमेशा प्रत्येक नए चर के अंत में रखा है जो मैंने निर्धारित किया है। तो छुटकारा पाओ;

JAVA_HOME ने इसे उपयोगकर्ता चर में भी सेट किया है ("?" के बिना)


1
"... जो मैंने हमेशा सेट किए गए प्रत्येक नए चर के अंत में रखा है" - आप ऐसा क्यों करेंगे?
स्टीफन सी

1

आपको उदाहरण के लिए बिन निर्देशिका के बिना JAVA_HOME या MAVEN_HOME सेट करना चाहिए: - JAVA_HOME = C: \ Program Files (x86) \ Java \ jdk1.7.0_45 - MAVEN_HOME = C: \ Program Files (x86) \ Apache-maven-3.1.1 अब पथ = .....;% MAVEN_HOME% \ बिन;% JAVA_HOME% \ bin यह सही ढंग से काम कर रहा है


1

कभी-कभी पथों में विंडोज व्हाट्सएप को सही से पहचाना नहीं जाता है

यदि आपको पथ की समस्या है और पथ जैसा लगता है

c:\Program Files\....

इसे पुराने DOS प्रारूप में बदलने की कोशिश करें

"C:\Progra~1\...

आप dir /xसही सिंटैक्स (तीसरे कॉलम) की जांच करने के लिए उपयोग कर सकते हैं

C:\>dir /x ... 11.01.2008 15:47 <DIR> DOCUME~1 Documents and Settings 01.12.2006 09:10 <DIR> MYPROJ~1 My Projects 21.01.2011 14:08 <DIR> PROGRA~1 Program Files ...

मेरे पीसी में JAVA_HOME है (और यह काम करता है)

"C:\Progra~1\Java\jdk1.8.0_121"

विंडोज 10 में परीक्षण किया गया



0

यह पुरानी पोस्ट लगती है लेकिन फिर भी मैं यह साझा करना चाहता था कि यह मुद्दा मेरे लिए कैसे तय हो गया।

उपयोगकर्ताओं के लिए, जिनके पास व्यवस्थापक पहुंच नहीं है और जब वे कमांड प्रॉम्प्ट खोलते हैं, तो यह उपयोगकर्ता विशेषाधिकार के तहत चलता है। इसका मतलब है, आपके पास C: \ Users \ जैसा पथ हो सकता है

इसलिए जब C: \ Users \ XYZ> mvn --version को आज़माते हैं, तो यह वास्तव में JAVA_HOME पथ को उन वैरिएबल वेरिएबल्स से खोजता है, जो पर्यावरण चर में सिस्टम चर नहीं हैं।

इसलिए, इसे ठीक करने के लिए, हमें उपयोगकर्ता चर में JAVA_HOME के ​​लिए एक पर्यावरण चर बनाने की आवश्यकता है।

आशा है, यह किसी की मदद करता है।


Ermmm ... उपयोगकर्ता का पर्यावरण चर विंडोज पर सिस्टम पर्यावरण चर को ओवरराइड करता है। यदि आपके पास एक ही नाम के साथ एक सिस्टम और उपयोगकर्ता पर्यावरण चर है, तो उपयोगकर्ता चर "जीतता है", और जो अनुप्रयोग देखता है।
स्टीफन सी

0

रनिंग एक्लिप्स और रनिंग मावेन के लिए आपको दो रास्ते वैरिएबल स्टोर करने होंगे, एक आपके jdk1.7_x_x_x लोकेशन में और दूसरा आपके jdk1.7_x_x_x_ \ bin में। यदि आप Windows का उपयोग कर रहे हैं, जब आप अपने पर्यावरण चर में हैं, तो निम्न कार्य करें:

1) एक USER वैरिएबल बनाएं जिसे JAVA_HOME कहा जाता है। इसे अपनी JAVA फ़ाइल के स्थान पर इंगित करें। उदाहरण के लिए: "C: \ Program Files \ Java \ jdk1.7.0_51" (उद्धरण हटाएं)

2) PATH के तहत, JAVA_HOME% को PATH में जोड़ें। यह आपके PATH के लिए चरण 1 से फ़ाइल स्थान जोड़ देगा। यह MAVEN के लिए अच्छा है

3) यदि आप ग्रहण का उपयोग कर रहे हैं, तो आपको "C: \ Program Files \ Java \ jdk1.7.0_51 \ bin" का पथ बिंदु होना चाहिए। अब अपने पथ के अंत में% JAVA_HOME% \ बिन जोड़ें।

4) आपका रास्ता कुछ इस तरह दिखना चाहिए: C: \ Program Files (x86) \ Google \ google_appengine \; C: \ Users \ username \ AppData \ Roaming \ npm;% M2%;% JAVA_HOW%;% JAVA_HOME% \ bin;

नोट: वे आइटम जिन्हें% M2 की तरह% में संलग्न किया गया है उन्हें वेरिएबल असाइन किया गया है। यह बेमानी लगता है लेकिन आवश्यक है। आप पुष्टि कर सकते हैं कि सब कुछ टाइप करके काम करता है:

जावा -संस्करण
javac -संस्करण
mvn -संस्करण

कॉमन प्रॉम्प्ट में टाइप किए गए उन तीन में से प्रत्येक को त्रुटियों को वापस नहीं करना चाहिए।


चरण 2) गलत और अनावश्यक है। न तो जावा टूलचैन या मावेन को "पाथ" चर में होने के लिए% JAVA_HOME% की आवश्यकता होती है। (यह कोई वास्तविक नुकसान नहीं करेगा , लेकिन यह भी अच्छा नहीं करता है।) संदर्भ - tutorialspoint.com/maven/maven_environment_setup.htm
स्टीफन सी

0

विंडोज़ 10 का उपयोग करना

मैं इस मुद्दे का सामना कर रहा था .. तो मैंने JAVA_HOME चर को पूरी तरह से हटा दिया और PATH में % JAVA_HOME% \ बिन जोड़ दिया तब यह काम किया !!! मेरे लिए


1
धन्यवाद। यह जावा_होम चर के अंत में "/ बिन" जोड़ने के बाद काम करता है
राहुल

-1

JDK ने java.exe के स्थानों को 1.6 और 1.7 के बीच बदल दिया है !!!

मेरे मामले में मैंने पाया कि JDK के लिए JAVA_HOME को अंत में \ jre को जोड़ना था। Mvn बैट फ़ाइल java.exe की तलाश में है और यह JAVA_HOME \ bin में इसे ढूंढती है। इसका जेडडीके 1.7 के लिए नहीं है; यह JAVA_HOME \ jre \ bin में है। JDK 1.6 में यह JAVA_HOME \ bin में है।

आशा है कि यह किसी की मदद करता है।


1
मेरा मानना ​​है कि यह गलत है। जावा 7 के लिए आधिकारिक ओरेकल डॉक्यूमेंटेशन के अनुसार ( docs.oracle.com/javase/7/docs/technotes/tools/windows/… ), JDK इंस्टॉलेशन में "जावा" कमांड "JAVA_HOME \ bin" और "दोनों में दिखाई देता है। JAVA_HOME \ JRE \ बिन "। यदि आपके इंस्टॉलेशन में ऐसा नहीं है, तो किसी ने / इसके साथ कुछ गड़बड़ कर दिया है!
स्टीफन सी

दिलचस्प। यह मेरे / बिन निर्देशिका में नहीं है, बस मेरा / jre / बिन। शायद मुझे
ब्रायन रेनहोल्ड

-1

मेरी स्थिति थोड़ी अलग थी।

  • JAVA_HOME 1.7 को इंगित करने के लिए ठीक से सेट किया गया था
  • अन्य मावेन परियोजनाएँ 1.7 सुविधाओं के साथ काम कर रही थीं / ठीक थीं।
  • PATH ठीक से सेट किया गया था।
  • सब कुछ अप-टू-डेट था।

फिर भी मेरी सरल नई मावेन परियोजना काम नहीं कर रही थी। जब मैंने देखा तो लॉग्स में अंतर था mvn clean install। मेरी पुरानी मावेन परियोजनाओं के लिए, यह दिखाया गया है

[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ oldProject---

लेकिन मेरी नई परियोजना के लिए यह दिखाया गया है:

[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ newProject ---

इसलिए, मैंने POM.xmlपुराने प्रोजेक्ट के POM में इस चीज़ को देखा और देखा:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

मूल रूप से, यह प्लगइन बताता है कि संकलन के लिए किस संकलक के संस्करण का उपयोग करना है। बस इसे नए प्रोजेक्ट के साथ जोड़ा POM.xmlऔर चीजों ने काम किया।

आशा है कि यह किसी के लिए उपयोगी है।


यह इस सवाल का एक वैध जवाब नहीं है। लक्षण अलग हैं। उपाय अलग है।
स्टीफन सी

-1

मैं विंडोज 7 का उपयोग कर रहा हूं, मेरे पास जो समस्या थी वह सरल थी:

मेरे पास मेरे JAVA_HOME पर्यावरण चर मान के लिए यह था:

"C:\Program Files\Java\jdk1.7.0_51;"

जब वह चाहता है:

"C:\Program Files\Java\jdk1.7.0_51"

अर्ध-उपनिवेश पर फिर से प्रहार!

:)

इस तरह मैंने इस समस्या को हल किया है, इसलिए यह एक संभव समाधान होना चाहिए।

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