2010-01-06 14 views
14

मैवेन, जावा और ओएस एक्स को एक साथ अच्छा खेलने के लिए प्रयास करने की कोशिश - कुछ मैंने लिनक्स और विंडोज मशीनों पर बिना किसी समस्या के कई बार किया है। मुझे लगता है कि मुझे बस इतना करना था कि मैवेन डाउनलोड करें, मेरे पर्यावरण चर सेट करें और मैं अच्छा होगा। तो यहाँ मेरी .bash_profile से एक टुकड़ा है ...मेवेन, जावा एएचओएमई डब्ल्यू/ओएस एक्स

export JAVA_HOME=/Library/Java/Home/ 
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1 
export PATH=$PATH:$M2_HOME/bin 

JAVA_HOME सेटिंग क्या एप्पल this Q&A page पर इस्तेमाल किया जा सिफारिश की गई है। फिर भी एक टर्मिनल शुरू करने और mvn --version चलाने के बाद, यहाँ उत्पादन है ...

Apache Maven 2.2.1 (r801777; 2009-08-06 15:16:01-0400) 
Java version: 1.6.0_17 
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home 
Default locale: en_US, platform encoding: MacRoman 
OS name: "mac os x" version: "10.6.2" arch: "x86_64" Family: "mac" 

किसी भी विचार क्यों JAVA_HOME मैं अपने .bash_profile में सेट कर रहा हूं Maven द्वारा नजरअंदाज कर दिया जा रहा है? यह समस्याएं पैदा कर रहा है क्योंकि rt.jar जैसी चीजें JAVA_HOME मेवेन में उपयोग नहीं की जा रही हैं। मैं मैवेन का उपयोग कर प्रतीकात्मक लिंक और अन्य हैकर बनाने के द्वारा इस पर काम कर सकता हूं, लेकिन मैं इसे सही तरीके से काम करना चाहूंगा क्योंकि अगली बार जब ऐप्पल जावा अपडेट को धक्का दे तो यह मुझ पर उड़ाएगा। किसी भी मदद के लिए धन्यवाद ...

उत्तर

-3

अच्छी तरह से पहली बात यह है कि मैं जांचूंगा कि क्या एमवीएन एक स्क्रिप्ट है। यदि यह है कि आप देख सकते हैं कि यह पर्यावरण को कैसे सोर्स कर रहा है। यदि ऐसा नहीं है तो मैं आमतौर पर .mvnrc नामक किसी भी कॉन्फ़िगरेशन फ़ाइलों की तलाश करता हूं, या कुछ/etc में। बेशक यह आरटीएफएम को चोट नहीं पहुंचाएगा!

+2

यह एक स्क्रिप्ट, मैं देख सकता है कि कैसे इस ब्लॉक अगर [-z "$ JAVA_HOME"]; तो JAVA_HOME =/सिस्टम/लाइब्रेरी/Frameworks/JavaVM.framework/संस्करण/$ {JAVA_VERSION}/होम फाई चीजों को प्रभावित कर सकता, लेकिन जब यह पर चलने के मालिक हैं $ JAVA_HOME वर है, तो सेट खंड नजरअंदाज कर दिया है, तो है। मैनुअल पढ़ने के लिए, किया गया है। जैसा कि मेवेन उपयोगकर्ता सूचियों को खोज रहा है। हैक समाधान पर भरोसा करने से पहले यह मेरा आखिरी उपाय था। अगर आपके पास कोई जवाब नहीं है, तो जवाब न दें। – ian

+0

उपरोक्त स्वरूपण के लिए क्षमा ... – ian

2

मेरे मैक पर,/लाइब्रेरी/जावा/होम एक सिम्लिंक (वास्तव में सिम्लिंक की एक श्रृंखला की शुरुआत) है जो आखिरकार/सिस्टम/लाइब्रेरी/फ्रैमवर्क्स/जावावाइम.फ्रेमवर्क/वीरियंस/1.6.0/ होम पर इंगित करता है। तो मुझे नहीं लगता कि मैवेन कुछ भी अनदेखा कर रहा है। यह सिर्फ आपको वास्तविक स्थान दे रहा है।

1

मेरे पास एक ही सेटअप है और सभी ठीक काम करते हैं। आपकी शैल स्क्रिप्ट में "JAVA_HOME" पर्यावरण परिवर्तक UNSET। मैक इंस्टॉल उस पर ख्याल रखता है। आप वैसे भी इसे गलत बना रहे हैं।

इसे अनसेट करें, अपनी फ़ाइल या स्टार्टअप खोल स्रोत करें और पुनः प्रयास करें।

8

मैक ओएस एक्स पर, आपको सही JAVA_HOME निर्धारित करने के लिए/usr/libexec/java_home का उपयोग करना चाहिए।

देखें What should I set JAVA_HOME to on OSX

11

समस्या यह है कि प्रतीकात्मक कड़ी "CurrentJDK" पुराने JDK को JavaVm.framework अंक के संस्करणों के अंदर है, इसलिए जब मैं निम्न कमांड में उपयोग की गई एक के लिए CurrentJDK स्थापित करने के लिए (1.7 .0_45) यह काम करता है

cd /System/Library/Frameworks/JavaVM.framework/Versions 
sudo rm CurrentJDK 
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK 

संदर्भ: http://java.dzone.com/articles/installing-jdk-7-mac-os-x

+0

मुझे 'सुडो आरएम वर्तमान जेडीके' के लिए "ऑपरेशन की अनुमति नहीं है" मिल रहा है। मैं एल कैप्टन – Wolf7176

+0

पर हूं क्या आप सुनिश्चित हैं कि आपके वर्तमान उपयोगकर्ता को इस फ़ोल्डर को पढ़ने/लिखने की अनुमति है? व्यवस्थापक उपयोगकर्ता का उपयोग करने के लिए बेहतर है –

संबंधित मुद्दे