JAVA_HOME को सही ढंग से परिभाषित नहीं किया गया है


14

मैंने जावा jdk हॉटस्पॉट 1.7 स्थापित किया। जब मैं टाइप कर java -versionरहा हूं तो मुझे :

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

यह सही है।

और मैंने मावेन को स्थापित करने की कोशिश की, और /etc/environmentफाइल में जोड़ा :

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

अब जब मैं mvan टाइप करता हूं तो मुझे मिल रहा है:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

हालाँकि, मैं पर्यावरण फ़ाइल में JAV_HOME वर के लिए "चिह्न" नहीं डाल रहा हूँ।

इससे भागने की कोशिश हो रही है

”/usr/lib/jvm/jdk1.7.0”/bin/java

पथ, वास्तव में यह होना चाहिए

/usr/lib/jvm/jdk1.7.0/bin/java

जब मैं आज्ञा देता हूं

$JAVA_HOME

मैं समझ रहा हूं:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

मुझे यकीन है कि पथ ( /usr/lib/jvm/jdk1.7.0) सही है।


क्या आप ऐसा कर सकते हैं ls -al /usr/lib/jvmऔर पुष्टि कर सकते हैं कि निर्देशिका नाम के लिए 'jdk1.7.0' प्रारूप है? ओरेकल उपयोग करते समय, वे अजीब फ़ोल्डर नाम का प्रयोग करते हैं
थॉमस वार्ड

ls /usr/lib/jvm/java-7और ls "/usr/lib/jvm/java-7"/binउपज, और मेरे लिए एक ही परिणाम प्राप्त करना चाहिए (जो खाली नहीं है)। अंतिम भाग, जावा -7, एक मैनुअल संशोधन का परिणाम है - यह आपके लिए थोड़ा अलग हो सकता है और होगा। सत्यापित करें, कि ऐसा फ़ोल्डर मौजूद है (jdk1.7.0)।
उपयोगकर्ता अज्ञात

मुझे total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0 इस ls -al /usr/lib/jvm कमांड को चलाने के बाद मिला
कामोलिडिन

ध्यान दें कि आपके कंसोल में एक चर देखने के लिए, आपको टाइप करने की उम्मीद है echo $VARNAME:। यदि आप बस करते हैं $VARNAMEतो यह उस चर में निष्पादित होगा।
एलेक्सिस विलके

जवाबों:


15

JAVA_HOMEउस निर्देशिका के नाम पर सेट होना चाहिए जिसमें वह binनिर्देशिका शामिल हो जिसमें जावा निष्पादक (विशेष रूप से, javaस्वयं) हों।

मान लें कि आपके पास एक /usr/lib/jvm/jdk1.7.0निर्देशिका है, तो इसमें संभवतः एक jreउपनिर्देशिका होती है जिसमें binनिर्देशिका होती है जिसमें javaनिष्पादन और संबंधित निष्पादन शामिल होते हैं ।

तो आप शायद की स्थापना की जानी चाहिए JAVA_HOMEकरने के लिए /usr/lib/jvm/jdk1.7.0/jreके बजाय /usr/lib/jvm/jdk1.7.0


एक JDK को स्थापित करने से, न केवल JRE आमतौर पर एक JDK-निर्देशिका का नेतृत्व करता है जिसमें बिन dir होता है, साथ ही JRE-dir, जिसमें स्वयं एक बिन dir होता है। लेकिन JAVA_HOMEहमेशा पैरेंट डायर को सेट किया गया था, डायर को नहीं jre
उपयोगकर्ता अज्ञात

दिलचस्प है, मैं इसे jdk नहीं करने के लिए सेट करने की आवश्यकता है? मैं जावा, संकलन, तैनाती, आदि में कोड लिखने जा रहा हूं ..
कामोलिडिन

@Kamoliddin यदि मावेन यह $JAVA_HOMEजानने के लिए उपयोग कर रहा है कि javacअन्य विकास बायनेरी कहाँ और हैं, तो हाँ, आपको इसे उन jdkडायर से युक्त करने के लिए सेट करना होगा binजिसमें उन बायनेरिज़ शामिल हैं।
एलियाह कगन

धन्यवाद, मुझे नहीं पता, यह पुनः आरंभ करने के बाद काम करता है, मुझे लगता है कि मुझे लागू होने वाले परिवर्तनों के लिए पुनरारंभ करने की आवश्यकता नहीं है। मैंने कुछ नहीं बदला। इसने काम कर दिया।
कामोलिडिन

निश्चित नहीं कि वह jdk1.7.0 का उपयोग क्यों कर रहा है .. /usr/lib/jvm/javaदोनों के लिए पर्याप्त होना चाहिए javaऔर javac। विकल्प इस बात का ध्यान रखते हैं
ब्रायन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.