java - मैक पर जावा 8 कैसे स्थापित करें




macos java-8 (8)

अपने मैक पर जावा को ठीक से स्थापित करने के लिए ओरेकल पर भरोसा न करें।

Homebrew प्रयोग करें:

brew update
brew cask install java

यदि आप अपने मैक पर जावा के कई संस्करणों को प्रबंधित करना चाहते हैं, तो jenv का उपयोग करने पर विचार करें।

अद्यतन: अब जावा 8 अब सबसे वर्तमान संस्करण नहीं है, हमें इसे इस तरह स्थापित करने की आवश्यकता है:

brew tap caskroom/versions
brew cask install java8

जावा के सभी पुराने संस्करणों की एक सूची प्राप्त करने के लिए: brew cask search java

हम ब्रू कास्क का उपयोग करते हैं क्योंकि हम अन्यथा ओरेकल जीयूआई इंस्टॉलर का उपयोग करेंगे जो आपके मैक पर जावा को ठीक से इंस्टॉल नहीं करेगा। (जीयूआई ऐप्स इंस्टॉल करने के लिए ब्रू कैस्क इंस्टॉल एपीपी का उपयोग करें; ब्रू इंस्टॉल एपीपी का उपयोग करें।) जावा एक जीयूआई ऐप नहीं है; इसे "कास्क" की आवश्यकता नहीं है लेकिन कम से कम ओरेकल लगातार है।

मैं नवीनतम जावाएफएक्स के साथ कुछ प्रोग्रामिंग करना चाहता हूं, जिसके लिए जावा 8 की आवश्यकता है। मैं इंटेलिजे 13 सीई और मैक ओएस एक्स 9 मैवरिक्स का उपयोग कर रहा हूं। मैंने ओरेकल के जावा 8 इंस्टॉलर को चलाया, और फाइलें दिखती हैं जैसे वे समाप्त हो गए

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

लेकिन पिछले संस्करण हैं

/System/Library/Java/JavaFrameworks/jdk1.6....

निश्चित नहीं है कि नवीनतम इंस्टॉलर इसे /System/Library बजाय /Library में क्यों रखता है (न ही अंतर क्या है)। लेकिन /usr/libexec/java_home को 1.8 नहीं मिला है, इसलिए आपके वर्तमान जावा संस्करण को सेट करने के तरीके पर मिली सभी पोस्ट काम नहीं करते हैं। मैंने इसे 1.8 /System/Library... पथ में बनाने के लिए एक प्रतीकात्मक लिंक जोड़ने का प्रयास किया है, लेकिन इससे मदद नहीं मिलती है। /usr/libexec/java_home -V अभी भी पुराने जावा 1.6 सूचीबद्ध करता है।

विडंबना यह है कि, सिस्टम प्राथमिकताओं के तहत "जावा" नियंत्रण कक्ष केवल जावा 1.8 दिखाता है!

ओरेकल के इंस्टॉलर ने इसे क्यों नहीं रखा है, जहां यह वास्तव में जाता है? और मैं इस समस्या के आसपास कैसे काम कर सकता हूं?


एक विकल्प जिसे मैं वास्तव में अपने स्थानीय कंप्यूटर पर चल रहे अनुप्रयोगों के लिए पसंद करना शुरू कर रहा हूं वह डॉकर का उपयोग करना है। आप अपने आवेदन को आधिकारिक जेडीके कंटेनर में आसानी से चला सकते हैं - जिसका अर्थ है कि आपको अपनी स्थानीय मशीन पर सेट अप करने के बारे में चिंता करने की ज़रूरत नहीं है (या अलग-अलग ऐप्स आदि के लिए जेडीके के कई अलग-अलग संस्करण चलाने के बारे में चिंता करने की ज़रूरत नहीं है)

यद्यपि यह आपके वर्तमान इंस्टॉलेशन समस्याओं के साथ आपकी मदद नहीं कर सकता है, यह एक समाधान है जिसका अर्थ है कि आप जावा को अपने देव मशीन पर सही ढंग से चलने की कोशिश करने से संबंधित मुद्दों के खनन क्षेत्र को साइड-चरण कर सकते हैं!

लाभ हैं:

  1. अपनी स्थानीय मशीन पर जावा के किसी भी संस्करण को स्थापित करने की आवश्यकता नहीं है (आप केवल एक कंटेनर के भीतर जावा चलाएंगे जिसे आप डॉकर हब से खींचते हैं)
  2. कंटेनर पर टैग को बदलकर जावा के विभिन्न संस्करणों पर स्विच करना बहुत आसान है।
  3. प्रोजेक्ट निर्भरता कंटेनर के भीतर स्थापित की जाती है - इसलिए यदि आप अपनी कॉन्फ़िगरेशन को गड़बड़ करते हैं तो आप कंटेनर को आसानी से दबा सकते हैं और फिर से शुरू कर सकते हैं।

एक बहुत ही सरल उदाहरण:

एक Dockerfile बनाएं:

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • यहां हम एसडीके के जावा कंटेनर चल रहे संस्करण 8 को निर्दिष्ट कर रहे हैं ( java:8 - जावा 7 का उपयोग करने के लिए, आप बस निर्दिष्ट कर सकते हैं: java:7 )
  • हम निर्देशिका के साथ स्थानीय निर्देशिका मैप कर रहे हैं: कंटेनर के अंदर /usr/src/myapp

एक docker-compose.yml फ़ाइल बनाएँ:

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

अब, मान लें कि हमारे पास यह जावा फ़ाइल है:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

तो हमारे पास निम्न फ़ाइल संरचना है:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

आप विभिन्न जावा चीजें कर सकते हैं जैसे:

संकलन:

docker-compose run --rm java javac HelloWorld.java 
  • आपको ध्यान रखना चाहिए कि HelloWorld.class आपकी वर्तमान निर्देशिका में दिखाई देता है (इस कारण से हमने वर्तमान निर्देशिका को कंटेनर के अंदर स्थान पर मैप किया है जहां हमारा कोड मौजूद है

चलाएँ:

docker-compose run --rm java java HelloWorld 
  • नोट: पहली बार जब आप इसे चलाते हैं तो यह छवि इत्यादि लाएगा। इसमें कुछ समय लगेगा - यह केवल पहली बार होता है
  • docker-compose run - कंटेनर के भीतर से एक कमांड चलाता है
  • आदेश समाप्त हो जाने के बाद -rm कंटेनर को हटाने के लिए डॉकर को बताता है
  • java सेवा / कंटेनर का नाम है (हमारे डॉकर-कंपोज़ फ़ाइल से) जिसके विरुद्ध यह आदेश चलाएगा
  • शेष रेखा कंटेनर के अंदर चलाने के लिए कमांड है।

यह आपके स्थानीय सेटअप की पूरी गड़बड़ी किए बिना विभिन्न ऐप्स के लिए जावा के विभिन्न संस्करणों को चलाने के साथ निपटने का एक शानदार तरीका है :)।

यहां एक और अधिक जटिल उदाहरण है जिसमें मेवेन और एक साधारण स्प्रिंग ऐप है

अस्वीकरण:


ब्रू का उपयोग करना

brew install Caskroom/cask/java

ब्रू कास्क स्थापित कैस्करूम / संस्करण / जावा 8 स्थापित करें


मुझे हल करने में एक ही समस्या है, क्योंकि मुझे एंड्रॉइड एसडीके प्रबंधक चलाने के लिए जेडीके 8 स्थापित करने की आवश्यकता है (क्योंकि ऐसा लगता है कि जेडीके 9 के साथ अच्छा काम नहीं करता है)। हालांकि, मैं आपको बताता हूं कि मैक (सिएरा) पर सभी समस्याओं को कैसे हल करता हूं।

सबसे पहले, आपको कास्क और जेनव के साथ ब्रू की आवश्यकता है।

  1. होमब्री कास्क इंस्टॉलेशन गाइड , आप यहां एक उपयोगी मार्गदर्शिका पा सकते हैं। टर्मिनल में चल रहे 'कैस्करूम / संस्करण' को टैप करना याद रखें: brew tap caskroom/versions
  2. उसके बाद, जेएनवी स्थापित करें: brew install jenv
  3. आप जो भी संस्करण चाहते हैं उसे brew cask install java8 (या java java7 या java अगर आप नवीनतम संस्करण स्थापित करना चाहते हैं, jdk9) के साथ स्थापित करें
  4. अंतिम चरण यह निर्धारित करना है कि कौन सा संस्करण चलाना है (और जेएनवी को अपने जेएवीए_एचओएमई को प्रबंधित करने दें) jenv versions को अपनी मशीन पर स्थापित सभी संस्करणों को सूचीबद्ध करने के लिए और फिर jenv global [JDK_NAME_OF_LIST] साथ jenv global [JDK_NAME_OF_LIST] एक को सक्रिय करें।

इस ब्लॉग पर आप इस brew-java-and-jenv.md गिस्ट brew-java-and-jenv.md पर अन्य उपयोगी सूचनाएं पा सकते हैं, मैक पर और jenv पर एकाधिक brew-java-and-jenv.md इंस्टॉल करें


मेरे पास ऐसे एप्लिकेशन हैं जो जावा 7 और 8 दोनों का उपयोग करते हैं और हर समय आगे और पीछे जाना पड़ता है।

मैं जोहान द्वारा लिखी गई इस लिपि का उपयोग करता हूं:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

अब आप इसे स्टार्टअप पर सेट कर सकते हैं या बाद में स्क्रिप्ट को कॉल कर सकते हैं।
मैक के लिए जेडीके स्थापित करें।

जावा 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

जावा 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


यदि आपके मशीन पर कई जावा संस्करण हैं और आप इसे रनटाइम पर गतिशील रूप से चुनना चाहते हैं, यानी, मेरे मामले में, मेरे पास दो संस्करण हैं:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

आप /etc/profile सामग्री को संशोधित करके उन्हें बदल सकते हैं। फ़ाइल के अंत में निम्नलिखित दो पंक्तियां जोड़ें (या संशोधित करें):

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

मेरे मामले में, यदि मैं उपयोग करना चाहता हूं तो यह निम्न की तरह होना चाहिए:

जावा 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

जावा 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

फ़ाइल को सहेजने के बाद, कृपया source /etc/profile चलाएं और इसे काम करना चाहिए। यहां परिणाम दिए गए हैं जब मैं तदनुसार पहले और दूसरे विकल्प का उपयोग करता हूं:

जावा 7:

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

जावा 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

प्रक्रिया समान है यदि आपका जावा फ़ोल्डर विभिन्न स्थानों पर स्थित है।


सबसे आसान उपाय -

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

पीएस - ब्रू-कास्क क्या है? होमब्रू-कास्क होमब्रू का विस्तार करता है, और होमब्री का उपयोग करके एप्लिकेशन इंस्टॉल करने के बाद " अतिरिक्त इंस्टॉल करने के लिए, इस आइकन को खींचें ..." को निष्पादित करने की परेशानी हल करता है।





java-8