java - मैकोज सिएरा(10.12), एल कैपिटन(10.11), योसमेट(10.10), मैवरिक्स(10.9), माउंटेन शेर(10.8) या ओएसएक्स शेर(10.7) पर जावा-एचओएमई कहां है?




macos (14)

जावा मैकोज़ के नवीनतम संस्करणों पर एक वैकल्पिक पैकेज है।

फिर भी एक बार स्थापित होने पर ऐसा लगता है जैसे JAVA_HOME पर्यावरण चर ठीक से सेट नहीं है


1.7.0_21-बी 12 जैसे नए ओरेकल जेवीएम यहां स्थापित होने लगते हैं:

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home


उपर्युक्त उत्तरों में से कोई भी मेरी मदद नहीं करता है। मुझे लगता है कि सभी उत्तरों पुराने OS X

ओएस एक्स योसाइट 10.10 के लिए, इन चरणों का पालन करें

खोलने के लिए अपने पसंदीदा टेक्स्ट एडिटर का प्रयोग करें: ~/.bash_profile

//This command will open the file using vim
$ vim ~/.bash_profile

फ़ाइल में निम्न पंक्ति जोड़ें और इसे सहेजें (: vim के लिए "x" के बाद):

export JAVA_HOME=$(/usr/libexec/java_home)

फिर टर्मिनल में आउटपुट देखने के लिए निम्न दो आदेश टाइप करें:

$ source ~/.bash_profile

$ echo $JAVA_HOME

दूसरी पंक्ति में, आप .bash_profile फ़ाइल की सामग्री अपडेट कर रहे हैं।


ऑस्ट्रेलियाई कर कार्यालय (एटीओ) से AUSKEY का उपयोग करने वाले किसी भी व्यक्ति को AUSKEY को अनइंस्टॉल करना चाहिए। इसने मेरे जावा-एचओएमई मुद्दों को हल किया।

यह अब मैक उपयोगकर्ताओं के लिए आवश्यक नहीं है। हाँ!


ओएस एक्स के लिए आप कर सकते हैं:

export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/java_home`

जावा 9 और कुछ साफ उपनाम के लिए अद्यतन करें।

.bash_profile :

export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`

ध्यान दें, कि नवीनतम संस्करण के लिए यह 9 और 1.9 नहीं है।

सक्रिय जावा सेट करें:

export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH

विभिन्न संस्करणों के बीच स्विच करने के लिए कुछ अतिरिक्त उपनाम:

alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'

टर्मिनल में परीक्षण:

% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

निम्नलिखित का उपयोग करने के लिए एक बेहतर (अधिक अपग्रेड करने योग्य) तरीका है:

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

यह एडब्ल्यूएस के साथ भी काम करना चाहिए क्योंकि इसमें घर के नीचे bin है


मेरा दृष्टिकोण है:

.bashrc

export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME

# -- optional
# export PATH=$JAVA_HOME/bin:$PATH

यह जे 6 और जे 7 के बीच स्विच करना बहुत आसान बनाता है


मेरे मैक ओएस को अपग्रेड करने के बाद और मेरे लिए काम करने के बाद एक ही समस्या आई:

  1. cmd> vi ~ / .bash_profile

  2. JAVA_HOME के ​​लिए लाइन जोड़ें / अपडेट करें: निर्यात JAVA_HOME = "/ लाइब्रेरी / जावा / जावा वर्चुअल माचिन / jdk1.7.0_15.jdk / सामग्री / होम"

  3. cmd> स्रोत ~ / .bash_profile या एक नया टर्मिनल खोलें

मुझे लगता है कि जेडीके संस्करण भिन्न हो सकता है, इसलिए बस उस संस्करण का उपयोग करें जो आपके पास है / लाइब्रेरी / जावा / जावा वर्चुअल माचिन /


मैक उपयोगकर्ता के लिए। जावा 8 जोड़ना चाहिए

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home

जावा 6:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
# JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

रेफरी: http://qiita.com/seri_k/items/e978c1339ce51f13e297


मैक ओएस एक्स 10.9 के लिए मैंने ओरेकल से जेआरई का नवीनतम संस्करण स्थापित किया और फिर JAVA_HOME को /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home पर रीसेट कर दिया।

मुझे यकीन है कि एक बेहतर तरीका है लेकिन मुझे ऊपर और चल रहा है।

hughsmac: ~ hbrien $ echo $ jAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home


मैक योसाइट के लिए,

जेडीके 1.7.0_xx का उपयोग कर रहा है

$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

JAVA_HOME

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

यदि आपको मैक ओएस एक्स (योसमेट) के तहत जेडीके के कई संस्करणों की आवश्यकता है, तो उनके बीच स्वचालित स्विचिंग के लिए कुछ स्क्रिप्टिंग जोड़ने में मददगार हो सकता है।

आप क्या करते हैं अपने ~ / .bash_profile को संपादित करना और निम्न जोड़ें:

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v [email protected]`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }
setjdk 1.7

पहली बार पीएटीएच में अन्य जेडीके संस्करणों को हटाने के लिए स्क्रिप्ट क्या करती है ताकि वे हमारे नए जेडीके संस्करण में हस्तक्षेप न करें। फिर यह / usr / libexec / java_home का कुछ चालाक उपयोग करता है जो एक आदेश है जो स्थापित जेडीके संस्करण सूचीबद्ध करता है। -v तर्क java_home को जेडीके के पथ को आपूर्ति किए गए संस्करण के साथ वापस करने के लिए बताता है, उदाहरण के लिए 1.7। हम नई मिली JAVA_HOME निर्देशिका की बिन निर्देशिका को इंगित करने के लिए पैथ को भी अपडेट करते हैं। अंत में हम फ़ंक्शन का उपयोग करके बस निष्पादित कर सकते हैं

setjdk 1.7

जो 1.7 शाखा के नवीनतम स्थापित जेडीके संस्करण का चयन करता है। एक विशिष्ट संस्करण का चयन करने के लिए आप बस निष्पादित कर सकते हैं

setjdk 1.7.0_51

बजाय। संस्करणों को चुनने के तरीके के बारे में अधिक जानकारी प्राप्त करने के लिए चलाएं / usr / libexec / java_home -V

PS इसे सहेजने के बाद ~ / .bash_profile स्रोत को न भूलें।


जावा वैकल्पिक पैकेज या ओरेकल जेडीके स्थापित होने के साथ, आपकी ~ / .bash_profile फ़ाइल में निम्न पंक्तियों में से एक को जोड़कर पर्यावरण परिवर्तनीय तदनुसार सेट किया जाएगा।

export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"

अद्यतन: जोड़ा -v ध्वज जेल्स वैन गुरप response पर आधारित है।


/usr/libexec/java_home एक निर्देशिका नहीं है लेकिन एक निष्पादन योग्य है। यह वर्तमान में कॉन्फ़िगर किए गए JAVA_HOME आउटपुट करता है और वास्तव में इसे परिवर्तित नहीं करता है। जावा प्राथमिकता ऐप यही है, जो मेरे मामले में टूटा हुआ लगता है और वास्तव में JVM को सही ढंग से नहीं बदलता है। यह 1.7 जेवीएम सूचीबद्ध करता है लेकिन मैं वास्तव में /usr/libexec/java_home के आउटपुट को बदले बिना वहां इच्छित सभी को टॉगल / अनगॉगल और ड्रैग और ड्रॉप कर सकता हूं।

शेर पर ओरेकल से 1.7.0 u6 इंस्टॉल करने के बाद भी और इसे वरीयताओं में डिफ़ॉल्ट के रूप में सेट करने के बाद भी, यह अभी भी सेब 1.6 जावा घर लौटा। वास्तव में मेरे लिए काम करने वाला एकमात्र फिक्स JAVA_HOME मैन्युअल रूप से सेट कर रहा है:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/

कमांड लाइन से चलाने पर कम से कम इस तरह से यह 1.7 का उपयोग करेगा। /usr/libexec/java_home अभी भी 1.6 पर जोर देता है।

अद्यतन : ओएसएक्स पर कमांड लाइन से जावा को समझना इस काम के तरीके पर एक बेहतर स्पष्टीकरण है।

export JAVA_HOME=`/usr/libexec/java_home -v 1.7` 

ऐसा करने का तरीका है। नोट, इसे 1.8 कार्यों में अपडेट करना ठीक है।





macos