JAVA_HOME और अद्यतन-विकल्प के बीच क्या अंतर है?


13

मैं अपने फेडोरा बॉक्स के लिए OpenJDK जावा रनटाइम को डिफ़ॉल्ट जावा के रूप में चलाने के लिए सबसे अच्छा तरीका जानने की कोशिश कर रहा हूं और एंड्रॉइड एसडीके मैनेजर, एंड्रॉइड स्टूडियो और एंड्रॉइड बंडल से ग्रहण के लिए एंड्रॉइड विकास के लिए ओरेकल जेडडीके 6 का उपयोग कर सकता हूं।

मैंने OpenJDK जावा रनटाइम को फेडोरा रिपॉजिटरी से स्थापित किया जिसमें सेटअप विकल्प के रूप में अनुसरण किया गया है।

[donnie@fedora ~]$ alternatives --list | grep java
jre_openjdk             auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
jre_1.7.0               auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
java                    auto    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java
libjavaplugin.so.x86_64 auto    /usr/lib64/IcedTeaPlugin.so

मैंने Oracle द्वारा प्रदान की गई rpm का उपयोग करके Oracle JDK 6 स्थापित किया है।

मैं Android बंडल और स्टूडियो का उपयोग कर सकते हैं JAVA_HOME का उपयोग करके Oracle JDK के तहत चलने के लिए नीचे चिपके हुए .bashrc

export JAVA_HOME=/usr/java/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$PATH

मैंने देखा कि Chrome अभी भी OpenJDK का उपयोग करता है (जैसा कि मुझे अभी भी प्लगइन को लिंक करने की आवश्यकता है)।

JAVA_HOME और विकल्प का उपयोग करने के बीच क्या अंतर हैं?

जवाबों:


12

वैकल्पिक

विकल्प एक उपकरण है जो उपकरण के नियंत्रण में लिंक का उपयोग करके स्थापित सॉफ़्टवेयर के स्थानों का प्रबंधन करेगा alternatives

इन लिंक को अंत में /etc/alternativesएक निर्देशिका के तहत बनाए गए मध्यवर्ती लिंक के साथ $PATHआमतौर पर प्रबंधित किया जाता है /usr/bin

उदाहरण

$ ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Feb 24 17:36 /usr/bin/java -> /etc/alternatives/java

$ ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Feb 24 17:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.0.fc19.x86_64/jre/bin/java

$ JAVA_HOME

$JAVA_HOMEवह स्थान है जहाँ सॉफ़्टवेयर को पर्यावरण चर के उपयोग के माध्यम से बताया जा सकता है। इसे $PATHसीधे शब्दों में जोड़ना $JAVA_HOME/binआपके अंदर मौजूद एग्जीक्यूटिव को जोड़ता है $PATH। कुछ अनुप्रयोगों के लिए यह कभी-कभी आवश्यक होता है।

2 तंत्र संबंधित हैं लेकिन एक साथ या एक दूसरे से स्वतंत्र रूप से उपयोग किए जा सकते हैं, यह वास्तव में जावा एप्लिकेशन पर निर्भर करता है कि कौन सा तंत्र बेहतर है।

मैं क्या करूं

मैं आमतौर पर $JAVA_HOMEकुछ जीयूआई अनुप्रयोगों के लिए उपयोग करता हूं , लेकिन सामान्य तौर पर इसका उपयोग केवल उन सर्वर इंस्टॉलेशन के लिए किया जाता है जो उदाहरण के लिए जेट्टी, टॉमकैट या जेओएसओएस का उपयोग करते हैं।

इन संस्थापनों के लिए, मैं अभी भी alternativesजावा संस्थापन का प्रबंधन करने से पहले उपयोग करूँगा $JAVA_HOME। मुझे यह उन मामलों में इस तरह करना पसंद है जहां मुझे जावा के कई इंस्टॉलेशन करने की आवश्यकता हो सकती है।

विकल्प आपको कुछ उपकरणों को जावा की एक स्थापना का उपयोग करने की अनुमति देते हैं जबकि अन्य उपकरण पूरी तरह से एक का उपयोग करते हैं।

संदर्भ


सस्ता यह है कि विकल्प के साथ मैं जावा के विभिन्न घटकों का उपयोग कर सकता हूं। उदाहरण के लिए, वैकल्पिक सेट कर सकते हैं javaऔर javacदूसरी ओर विभिन्न JDKs से JAVA_HOME=JAVALOCATIONबात करेंगे java, javacऔर javawsकरने के लिए java, javacऔर javawsमें JAVALOCATIONक्रमश।
सुधीर खान्गर

मैंने यह सवाल पूछा था कि मैं OpenJDK का उपयोग डिफ़ॉल्ट जावा रनटाइम के रूप में कैसे कर सकता हूं और Android Studio, Eclipse और SDK Manager Oracle JDK का उपयोग कर सकता हूं। मैं उन तीन कार्यक्रमों को Oracle JDK के तहत अपने स्टार्टअप स्क्रिप्ट को संपादित करके चला सकता हूं जो अपडेट होने पर टूट सकते हैं। मैं की तरह अधिक सामान्य कुछ के लिए देख रहा था STUDIO_JDK, कि मैं करने के लिए जोड़ सकते हैं ~/.profileया ~/.bashrcJDK उठा लिए, कि एंड्रॉयड स्टूडियो द्वारा प्रयोग किया जाता है लेकिन मुझे लगता है एंड्रॉयड बंडल (ग्रहण और एसडीके प्रबंधक) उसका सम्मान नहीं होंगे।
सुधीर खंगर

@donniezazen - हाँ STUDIO_JDKएक कस्टम चीज़ है। मैं उन साधनों के लिए विकल्पों का उपयोग करूंगा और उन JAVA_HOMEपथ पर सेट करूंगा /usr/binजिनके द्वारा प्रबंधित किया जाता है alternatives। जब उन्नयन किया जाता है, तो बदलना alternativesआवश्यक है।
स्लम

मुझे यकीन नहीं है कि आप क्या प्रस्ताव कर रहे हैं। दोनों को कहना alternativesऔर JAVA_HOMEकहना /usr/bin/java। साथ ही यह JAVA_HOMEओवरराइड जैसा भी लगता है alternatives
सुधीर खानगर

@donniezazen - हाँ अपने JAVA इंस्टॉल को प्रबंधित करने के लिए विकल्पों का उपयोग करें और फिर JAVA_HOMEइसे इंगित करते हुए उपयोग करें /usr/bin। आप सही हैं, JAVA_HOMEस्वतंत्र रूप से काम कर सकते हैं alternatives
स्लम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.