JAVA_HOME त्रुटि जब मैवेन बिल्ड, OSX-10.8.4 संस्करण


10
Error: JAVA_HOME is not defined correctly.
  We cannot execute
  /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java

मैंने अपने OSX को 10.8.4 में अपग्रेड किया है। OSX अपग्रेड के बाद मैंने अपने JDK और JRE को 7 में अपग्रेड किया है। लेकिन मुझे उक्त त्रुटि तब हो रही है जब मैं प्रोजेक्ट के निर्माण के लिए प्रयास कर रहा हूं।

जब मैं दौड़ता हूं ls -al /System/Library/Frameworks/JavaVM.framework/Versions/

मुझे नीचे की प्रतिक्रिया मिली

drwxr-xr-x  11 root  wheel  374 Jul 22 22:33 .
drwxr-xr-x  10 root  wheel  340 Jul 22 18:30 ..
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6.0 -> CurrentJDK
drwxr-xr-x   7 root  wheel  238 Jul 22 18:30 A
lrwxr-xr-x   1 root  wheel    1 Jul 22 18:30 Current -> A
lrwxr-xr-x   1 root  wheel   59 Jul 22 18:30 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

इसके लिए ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin

मुझे CurrentJDK में आगे कोई सामग्री नहीं दिख रही है।

दौड़ने पर /usr/libexec/java_home

मुझे मिला:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

मैं ओएस एक्स के साथ काम करने के लिए बहुत नया हूं। मुझे बताएं कि क्या मैं इसे सफल बनाने में अभी भी किसी भी बिंदु से चूक गया हूं।


क्या आप भाग सकते हैं echo $JAVA_HOME, ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/binऔर ls -al /System/Library/Frameworks/JavaVM.framework/Versions/प्रश्न में परिणाम जोड़ सकते हैं ?
nohillside

@patrix .bashrc -> export JAVA_HOME=/usr/libexec/java_home .profile -> export PATH=${JAVA_HOME}/bin:$PATH export CATALINA_HOME=/Library/Tomcat/Home .bashrc और .profile में उपर्युक्त आदेश हैं, जिनका उल्लेख है ..
arvind406

@Patrix .. मैं देखता हूं कि bashrc फ़ाइल से जावा पथ को पुनर्प्राप्त नहीं किया गया है। जब मैंने टर्मिनल से JAVA_HOME अलग से सेट किया तब ही मैं एक प्रोजेक्ट बना सका। ऐसा क्यों हो सकता है? कोई उपाय ?
arvind406

जवाबों:


9

Apple JAVA_HOME को "/ usr / libexec / java_home" पर सेट करने की अनुशंसा करता है।

मेरे लिए जो काम किया गया था वह लगभग $ () में लपेट रहा था। इसलिए मैंने निम्नलिखित आदेशों के साथ JAVA_HOME को $ (/ usr / libexec / java_home) के रूप में कॉन्फ़िगर किया:

vim ~/.bash_profile 
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile

यह मेरे लिए पूरी तरह से काम करता है!
rdegges

2

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java यदि यह मौजूद है तो Apple द्वारा आपूर्ति की गई जावा है, जिसका नवीनतम संस्करण JRE 1.6 होगा।

यदि आप इसे पूरी तरह से स्थापित कर चुके हैं, तो Oracle JDK (java 7 जिसका आप उल्लेख करते हैं) पथ / usr / bin / java का उपयोग करें। ध्यान दें कि JRE केवल जावा एप्लेट के लिए है और इसलिए / usr / bin / java को प्रभावित नहीं करता है

अधिक जानकारी के लिए ओरेकल इंस्टॉल प्रलेखन देखें

और वहाँ से ध्यान दें

जावा का एक अलग संस्करण चलाने के लिए, या तो पूर्ण पथ निर्दिष्ट करें, या java_home टूल का उपयोग करें:

/usr/libexec/java_home -v 1.7.0_06 --exec javac -version

अधिक जानकारी के लिए, java_home (1) मैन पेज देखें।


.profile -> निर्यात PATH = $ {JAVA_HOME} / bin: $ PATH निर्यात CATALINA_HOME = / लाइब्रेरी /
टॉमकैट

@arvind उन टिप्पणियों का क्या मतलब है?
user151019

@ arvind406 हां, लेकिन जो मेरे जवाब के बारे में जोड़ता है या पूछता है?
user151019

पिछली टिप्पणी गलत विंडो में टिप्पणी की गई थी। क्षमा याचना। 10.8 OSX में अपग्रेड करने के बाद मैंने JDK और JRE को 7 में अपग्रेड किया है। मैंने एक बार फिर से सवाल को अपडेट किया है। कृपया एक नज़र डालें और मुझे बताएं कि क्या मैं कहीं गलत हो रहा हूं। इस कमांड को चलाने पर /usr/libexec/java_homeमुझे मिलता है/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
arvind406

@ मर्क .. मैं देख रहा हूं कि रास्ता bashrc फ़ाइल से पुनर्प्राप्त नहीं किया गया है। जब मैंने टर्मिनल से JAVA_HOME अलग से सेट किया तब ही मैं एक प्रोजेक्ट बना सका। ऐसा क्यों हो सकता है? कोई उपाय ?
arvind406

1

इस लिंक का पालन करें: https://stackoverflow.com/a/44564303/5005676 यदि आप mvan स्क्रिप्ट देखते हैं: यहाँ कोड विफल रहता है ---

डिबगिंग और फिक्सिंग के लिए कदम:

चरण 1: mvan स्क्रिप्ट खोलें /User/Username/apache-maven-3.0.5/bin/mvn (कम कमांड के साथ खोलें: जैसे /User/Username/apache-maven-3.0.5-bin/mvn)

चरण 2: स्क्रिप्ट में नीचे दिए गए कोड का पता लगाएं:

  if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly."
  echo "  We cannot execute $JAVACMD"
  exit 1
fi

Step3: यह हो रहा है क्योंकि JAVACMD चर सेट नहीं किया गया था। तो यह त्रुटि प्रदर्शित करता है।

नोट: इसे ठीक करने के लिए

export JAVACMD=Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/

कुंजी: यदि आप चाहते हैं कि यह स्थायी रूप से खुला इमैसेफाइल हो

कमांड पोस्ट करें और Ctrl-x Ctrl-c (सेव-बफ़र्स-किल-टर्मिनल) दबाएँ।

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