मैक ओएस एक्स के लिए जावा JDK 7 को स्थापित करने के बाद - mvn -version अभी भी जावा संस्करण 1.6.0_31 दिखाता है


117

ओरेकल ने मैक ओएस एक्स के लिए 26 अप्रैल को जावा जेडीके 7 जारी किया। मैंने इंस्टाल निर्देशों का पालन किया और जब मैं टर्मिनल विंडो में जावा-वर्जन करता हूं तो मुझे यह मिलता है:

java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

हालाँकि जब मुझे mvn -versionटर्मिनल विंडो मिलती है तो मैं:

Apache Maven 3.0.2 (r1056850; 2011-01-08 18:58:10-0600)
Java version: 1.6.0_31, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.3", arch: "x86_64", family: "mac"

मैं जावा जेडीके 1.7.0_04 का उपयोग करने के लिए मावेन कैसे प्राप्त कर सकता हूं?

सहायता के लिए धन्यवाद।

जवाबों:


126

अंत में यहाँ उत्तर मिला:

http://www.adam-bien.com/roller/abien/entry/java_se_development_kit_7

आपको JAVA_HOME=$(/usr/libexec/java_home)मैक पर इसके बजाय उपयोग करना चाहिए और फिर "जावा प्राथमिकताएं" टैप के माध्यम से वर्तमान jdk सेट करना चाहिए ।

JAVA_HOME को ~ / .profile में सेट करें


4
मैंने हाल ही में जावा 6 स्थापित किया है और मैं JavaPreferences.app bcz मैक का पता लगाने में सक्षम नहीं हूं, अब जावा के लिए समर्थन प्रदान नहीं करता है। अब मुझे बता सकते हैं कि मैं JavaPreferences का उपयोग किए बिना अपना jvm कैसे सेट कर सकता हूं।
आमोद

2
आप अपना खुद का जवाब स्वीकार कर सकते हैं। यह हम सभी को दिखाएगा कि इस समस्या को हल कर दिया। और आपके पास 10 और
पॉट्स होंगे

5
मैंने ~ / .bash_profile: एक्सपोर्ट JAVA_HOME = $ (/ usr / libexec / java_home) में
जोड़ा

1
या आप Java Preferences.app का उपयोग कर बदलने के बजाय एक शॉट में "JAVA_HOME = $ (/ usr / libexec / java_home -v 1.6) निर्यात" कर सकते हैं
mac

एल कैप्टियन में जावा प्राथमिकताएं ऐप खोलने में असमर्थ, मैं सिस्टम वरीयताएँ -> जावा से गया।
वोल्फ 7176

34

समस्या यह है कि JavaVm.framework के संस्करणों के अंदर प्रतीकात्मक लिंक "CurrentJDK" पुराने jdk को इंगित करता है, इसलिए जब मैंने 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


सुनिश्चित करें कि आप के लिए सही संस्करण निर्दिष्ट करें jdk1.7.0_45.jdk, मेरा थाjdk1.7.0_51.jdk
ndequeker

1
मुझे आश्चर्य है कि ओरेकल डेवलपर्स ने इसे स्वचालित रूप से क्यों नहीं किया? यह मेरे लिए मामूली नहीं है। इस जवाब से मेरा दिन बच गया।
इवान वोरोशिलिन

यह मेरे लिए काम नहीं कर रहा है। मैं एल कैप्टन पर हूं। mvn जावा संस्करण बदलने से इंकार करता है। JAVA_HOME सटीक है
Wolf7176

17

जावा प्राथमिकता से रास्ता खोजने के लिए, प्रयास करें /usr/libexec/java_home -X

मेरा Java7 प्रविष्टि इस तरह दिखता है:

<dict>
    <key>JVMArch</key>
    <string>x86_64</string>
    <key>JVMBundleID</key>
    <string>com.oracle.java.7u04.jdk</string>
    <key>JVMEnabled</key>
    <true/>
    <key>JVMHomePath</key>
    <string>/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home</string>
    <key>JVMIsBuiltIn</key>
    <false/>
    <key>JVMName</key>
    <string>Java SE 7</string>
    <key>JVMPlatformVersion</key>
    <string>1.7</string>
    <key>JVMVendor</key>
    <string>Oracle Corporation</string>
    <key>JVMVersion</key>
    <string>1.7.0_04</string>
</dict>

6
grrrrr, मैंने किया था और वह पथ जो मेरे jdk1.7 के लिए सूचीबद्ध है, वह बिल्कुल भी मौजूद नहीं है :(
डीन हिलर

9

आपको JAVA_HOMEपर्यावरण चर को नए JDK 1.7 स्थान पर बदलने की आवश्यकता है ।

देखो इस सवाल का संभावित स्थानों जहां JAVA_HOME परिभाषित किया जा सकता है। एक टर्मिनल में, which javaअपने जावा इंस्टॉलेशन का पथ खोजने के लिए टाइप करें, और फिर JAVA_HOMEउस पथ को इंगित करने के लिए अपडेट करें (लेकिन अनुगामी बिन फ़ोल्डर को छोड़कर)।


क्या आप सुनिश्चित हैं कि मुझे मैक ओएस एक्स पर इसकी आवश्यकता है? मुझे अतीत में ऐसा नहीं करना पड़ा है। अगर मुझे JAVA_HOME सेट करने की आवश्यकता है, तो मुझे कैसे पता चलेगा कि जावा JDK 7 की स्थापना के रूप में किस तरह का उपयोग करना है, इससे मुझे कोई इंस्टॉल पथ की जानकारी नहीं मिली और मैक पर जावा वरीयता उपयोगिता ऐप JDK 1.7 के लिए एक रास्ता नहीं दिखाता है
ब्रूस फिलिप्स

यदि आप ऊपर दिए गए अपने प्रश्न को देखते हैं, तो आप देख सकते हैं कि JAVA_HOME को पहले से ही परिभाषित किया गया है और वर्तमान में पुराने 1.6 JDK को इंगित करता है। मैं OSX में पर्यावरण चर को बदलने के तरीके से परिचित नहीं हूं, लेकिन यह मावेन डिफ़ॉल्ट रूप से उपयोग करता है।
नैट

समस्या यह है कि एक Apple अपडेट सामान्य रूप से जावा संस्करण को अपडेट करता है और JAVA_HOME मान सेट करता है। JbA_HOME मान को .bashrc में सेट करना OS X पर काम नहीं करता है क्योंकि यह लिनक्स में करता है। यह भी नहीं कि मैं ओरेकल द्वारा स्थापित जेडडीके 7 का मार्ग कहां से पा सकता हूं।
ब्रूस फिलिप्स

साथ ही नैट मेरा प्रश्न आपके द्वारा लिंक की गई पोस्ट का डुप्लिकेट नहीं है। मैं ओएस एक्स पर हूं और मैक ओएस एक्स के लिए ओरेकल इंस्टॉल का उपयोग करके जावा जेडीके 7 को अपडेट किया गया है, जो कि 26 अप्रैल को जारी किया गया था।
ब्रूस फिलिप्स

कोई मैक .bashrc के बजाय .bash_profile का उपयोग करता है और आपको / सिस्टम / लाइब्रेरी / जावा / JavaVirtualMachines के तहत इंस्टेंलेशन खोजने में सक्षम होना चाहिए / जहां आपको अपने नए 1.7.0 जावा संस्करण पर इंगित करने की आवश्यकता है
peter -budo

7

यदि कोई 64-बिट मैक पर मैकेन स्थापित कर रहा है, तो मैक ओएसएक्स 'मावेरिक्स' अपने आप को कुछ समय के लिए बचाए रखता है और कुछ बालों को खींचने के लिए मावेन को स्थापित करने की कोशिश कर रहा है। मैं इसका अनुसरण करने की कोशिश कर रहा था (जो विफल रहा क्योंकि java_home का स्थान Mavericks पर बदल गया है:

http://maven.apache.org/download.cgi

जब तक मुझे यह वेबसाइट नहीं मिली, तब तक मैं अपने बालों को बाहर निकाल रहा था, जो आपको होमब्रे स्थापित करने और इस पृष्ठ पर दिए गए निर्देशों का पालन करने की सलाह देता है: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html

एक बार जब $ maven -version काम नहीं करता है, तो पूरा न करें, इसके बजाय $ mvan --version का उपयोग maven.apache.org/download.cgi के रूप में करें।

यह काम किया, लेकिन फिर मैंने देखा कि जावा एसडीके मावेन जावा संस्करण का उपयोग कर रहा था: 1.6.0_65, जो कि सिस्टम पर स्थापित नवीनतम एसडीके नहीं है।

एक बार मैंने JAVA_HOME = सेट किया/usr/libexec/java_home

यह सही SDK: Maven होम: /usr/local/Cellar/maven/3.1.1/libexec जावा संस्करण: 1.7.0_45, विक्रेता: Oracle Corporation Java होम: /Library/Joo/JavaVirtualMachines/jdk1.7.0_45 का उपयोग कर रहा था। jdk / Contents / Home / jre डिफ़ॉल्ट लोकेल: en_US, प्लेटफॉर्म एन्कोडिंग: UTF-8 OS नाम: "मैक ओएस एक्स", संस्करण: "10.9", आर्क: "x86_64", परिवार: "मैक"

सफलता! लेकिन रुको ... अगली बार जब मैंने टर्मिनल खोला और mvn -v चलाया तो यह java संस्करण 1.6 पर वापस चला गया। WTH!

मैं क्या पढ़ा उपयोग से बग के कुछ प्रकार: echo JAVA_HOME = /usr/libexec/java_home -v 1.7| सुडो टी-ए / आदि / मावेंस्क

और अब:

Maven होम: /usr/local/Cellar/maven/3.1.1/libexec जावा संस्करण: 1.7.0_45, विक्रेता: Oracle Corporation जावा घर: /Library/Java/JavaVirtualMinines/jdk1.7.0_45.jdk/Contents/Home/jre/jre डिफ़ॉल्ट लोकेल: en_US, प्लेटफॉर्म एन्कोडिंग: UTF-8 OS नाम: "मैक ओएस एक्स", संस्करण: "10.9", आर्क: "x86_64", परिवार: "मैक"


export JAVA_HOME=`/usr/libexec/java_home`मेरे लिए अच्छी तरह से काम किया JAVA_HOME var को सही ढंग से निर्यात किया गया।
cdeszaq

4

मावेन अभी भी जावा 6 का उपयोग कर रहा है, यह है कि / usr / bin / mvn स्क्रिप्ट जो इसे लॉन्च करता है, वह वर्तमान जावा संस्करण को जावा प्राथमिकता में निर्दिष्ट के रूप में हल करने के लिए सही OS / X विधि का उपयोग नहीं करता है। विवरण के लिए इस मावेन मुद्दे को देखें:

http://jira.codehaus.org/browse/MNG-4226

इसे वोट करने से यह ठीक हो सकता है; इस बीच, यदि आप / usr / bin / mvn स्क्रिप्ट को बदल देते हैं जैसा कि उस मुद्दे पर टिप्पणियों और पैच में दिखाया गया है, तो आपको वांछित परिणाम मिलेगा।


2

मेरी मशीन पर ठीक है। हां, ओरेकल इंस्टॉलर बिल्कुल अपना काम नहीं करता था, और इसने मुझे 1.6 के बाद भी कोई अंत नहीं दिया।

java run time was updated 

java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

लेकिन एसडीके होम वास्तव में एक सिम लिंक है जो अभी भी 1.6 की ओर इशारा करता है

/Library/Java/Home खोजक GetInfo को इंगित करता है /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

टर्मिनल में

./Home -> /System/Library/Frameworks/JavaVM.framework/Home

जाओ पता लगाओ।

मुझे यहां 1.7 मिले और मैं इसका उपयोग कर रहा हूं: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home


0

मुझे लगता है कि समस्या आंशिक रूप से जावा लॉन्च तंत्र के साथ है। मैं अपने कोड को Java7 के तहत चलाने के लिए ग्रहण प्राप्त करने में सक्षम हूं, लेकिन मुझे लगता है कि ग्रहण स्वयं अभी भी Java6 के तहत चल रहा है। इसके अलावा, मेरे पास एक जावा प्रोग्राम है जो एक साल पहले आखिरी बार संकलित किया गया था, और jarbundler-2.1.0.jar (विकल्प jvmversion = "1.6+" के साथ) का उपयोग करके बनाया गया था। जब मैं .app फ़ाइल को डबल क्लिक करता हूं, तो वह Java6 चलाता है, लेकिन जब मैं .jar फ़ाइल को डबल क्लिक करता हूँ, तो वह Java7 चलाता है।

इसके अलावा, मैं JAVA_HOME का उपयोग नहीं करता हूं, लेकिन मुझे अभी भी प्रश्न में दिखाया गया सही जावा संस्करण "1.7.0_04" मिलता है। JAVA_HOME एक लाल हेरिंग लगता है। हो सकता है कि मावेन को इसकी आवश्यकता है, लेकिन एक्लिप्स इसका उपयोग नहीं करता है, और न ही जार फ़ाइलों को लॉन्च करना है।

और जावा प्रिवेंशन टूल में जावा 7 को सेट करने के बाद, यह .app जावा फाइलों को लॉन्च करने को प्रभावित नहीं करता है। हालाँकि यह टर्मिनल के काम को अच्छी तरह से 'java -version' करता है। मैंने सब कुछ अनचेक करने की कोशिश की लेकिन Java7 विकल्प, और फिर एक्लिप्स बिल्कुल नहीं चलेगा।


0

यदि आपका JAVA_HOME स्थानीय उपयोगकर्ता के बैश पर स्थित है, तो mvan सिस्टम के वर्तमान जावा संस्करण को चाहे जो भी आपके द्वारा सेट किया गया हो, JAVA_HOME चुन लेगा।

इसलिए सबसे पहले ' कौन सा मावन ' कमांड चलाएं और जांच करें कि आप कौन सा एक्ज़ीक्यूटिव मावन इस्तेमाल कर रहे हैं। इसके बाद उस mvn फ़ाइल को संपादित करें और JAVA_HOME वैरिएबल को अपने पसंदीदा जावा होम में बदलें

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