ओरेकल के जावा को उबंटू में डिफ़ॉल्ट जावा कैसे सेट करें?


134

JAVA_HOMEओरेकल के जावा को इंगित करने के लिए मैं उबंटू में मूल्य कैसे बदलूं ?

यह इंगित करना चाहिए java-6-sunया java-6-sun-1.6.0.24?

जवाबों:


175

मैंने लाइन लगाई:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

मेरी ~/.bashrcफाइल में।

/usr/lib/jvm/java7-oracleकी ओर इशारा करते हुए एक प्रतीकात्मक लिंक होना चाहिए /usr/lib/jvm/java-7-oracle-[version number here]

यह एक प्रतीकात्मक लिंक होने का कारण है कि अगर JVM का नया संस्करण है, तो आपको अपनी .bashrcफ़ाइल को अपडेट करने की आवश्यकता नहीं है , यह स्वचालित रूप से नए संस्करण को इंगित करना चाहिए।

यदि आप JAVA_HOMEविश्व स्तर पर पर्यावरण चर सेट करना चाहते हैं और सिस्टम स्तर पर इसका उपयोग /etc/environmentफ़ाइल में सेट करना चाहिए ।


4
या /usr/lib/jvm/java-1.6.0-openjdk-amd64 यदि आप Oracle की (Sun) JDK की जगह OpenJDK का उपयोग कर रहे हैं।
pm_labs

7
आप एक्सपोर्ट JAVA_HOME = / usr / lib / jvm / default-java /
noomz

@noomz यदि डिफ़ॉल्ट-जावा मौजूद नहीं है तो आप कैसे प्राप्त करेंगे?
AHungerArtist

@AHungerArtist आपको मिलता है कि अगर आप ओपजडक या अन्य आधिकारिक तौर पर समर्थित उबंटू पैकेज स्थापित करते हैं। दुर्भाग्य से, यह Oracle JDK के लिए webupd8 / java ppa का उपयोग करने के लिए समर्थित नहीं है। वास्तव में, यह मेरे लिए पूरी तरह से अस्पष्ट है, oracle-java7-set-defaultपैकेज क्या करता है।
मेल्विन

फ़ाइल में आप उसे कहाँ रखते हैं?
Czipperz

166

यदि आप इसे विश्व स्तर पर और सिस्टम स्तर पर बदलना चाहते हैं;

में

/etc/environment

इस पंक्ति को जोड़ें:

JAVA_HOME=/usr/lib/jvm/java-7-oracle

27
+1 यह अनुशंसित तरीका है help.ubuntu.com/community/EnvironmentVariables
daniel kullmann

@metdos उपरोक्त उत्तर विश्व स्तर पर या सिस्टम स्तर पर नहीं है?
एंड्रॉइड किलर

1
@AndroidKiller क्या आपने लिंक डैनियल कुल्मन को इंगित किया था?
'17

@metdos काम करता है अच्छा है, लेकिन संदर्भित चर मेरे लिए काम नहीं कर रहा है ... $JAVA_HOMEइस तरह से इस्तेमाल किए जाने पर हल नहीं होता PATH=$JAVA_HOME/bin, पुनः आरंभ करने की कोशिश की, कोई प्रभाव नहीं। क्या मुझे इस फ़ाइल में या मेरी प्रोफ़ाइल पर exportया set JAVA_HOMEतो है?
रफियन

@ राफिन मैं अलग-अलग कोने के मामलों के बारे में निश्चित नहीं हूं, इस तरह से यह मेरे लिए पूरी तरह से काम करता है, अधिक जानकारी के लिए मैं आपको पढ़ने में मदद
community/

53

ओरेकल के जावा एसई डेवलपमेंट किट को सिस्टम डिफॉल्ट जावा के रूप में सेट करने के लिए बस यहां से नवीनतम जावा एसई डेवलपमेंट किट डाउनलोड करें फिर एक निर्देशिका बनाएं जो आप अपने फाइल सिस्टम में पसंद करते /usr/javaहैं उदाहरण के लिए अब उस निर्देशिका में आपके द्वारा डाउनलोड की गई फ़ाइलों को निकालें।

$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java

अब अपने JAVA_HOMEपर्यावरण चर सेट करने के लिए :

$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000

सुनिश्चित करें कि Oracle का जावा डिफ़ॉल्ट जावा के रूप में सेट है:

$ update-alternatives --config java

आपको ऐसा कुछ मिलता है:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /opt/java/jdk1.8.0_05/bin/java                  20000     auto mode
  1            /opt/java/jdk1.8.0_05/bin/java                  20000     manual mode
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode

Press enter to keep the current choice[*], or type selection number:

बाईं ओर संख्याओं से पहले तारांकन पर ध्यान दें और यदि सही सेट नहीं है, तो उसकी संख्या टाइप करके और एंटर दबाकर सही चुनें। अब अपने जावा का परीक्षण करें:

$ java -version

अगर आपको निम्नलिखित कुछ मिलता है, तो आप जाने के लिए अच्छे हैं:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

यह भी ध्यान दें कि आपको रूट अनुमति की आवश्यकता हो सकती है या ऐसा करने में सक्षम होने के लिए सुडोर्स समूह में होना चाहिए। मैंने ubuntu 12.04 और Debian wheezy दोनों पर इस समाधान का परीक्षण किया है और यह उन दोनों में काम करता है।


1
हाँ, यह समाधान स्वीकार किए जाते हैं की तुलना में स्वच्छ तरीका है।
सिमोन सीतादिनी

@JayminGajjar टिप्पणी है कि आभार व्यक्त करना आवश्यक नहीं है। इस वेबसाइट में अच्छे प्रश्नों / उत्तरों का समर्थन करने का तंत्र उन्हें उभारना है। यदि आपके पास ऐसा करने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन टिप्पणी करने के लिए पर्याप्त है, तो कृपया इसमें कुछ उपयोगी जानकारी शामिल करने का प्रयास करें जैसे कि किस सिस्टम और किस ओएस पर आपने परीक्षण किया और इस समाधान को काम कर रहे हैं आदि
बाराकुडा

@ बाराकुडा मैं पहले ही अप-वोट किया गया था, आप जानकारी के बारे में सही हैं, इसने मेरे लिए उबंटू 16.10 64 बिट सर्वर OS :) पर काम किया
जयमिन गज्जर

20

यदि आप चाहते हैं कि यह वातावरण चर सभी उपयोगकर्ताओं के लिए उपलब्ध हो और सिस्टम शुरू होने पर आप निम्नलिखित को /etc/profile.d/java.sh में जोड़ सकते हैं (यदि आवश्यक हो तो इसे बनाएं):

export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

फिर एक टर्मिनल रन में:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

मेरा दूसरा सवाल है - क्या यह जावा-6-सन या जावा-6-सन-1.6.0.24 की ओर इशारा करता है?

यह हमेशा के java-7-oracleरूप में इंगित करना चाहिए कि नवीनतम स्थापित एक के प्रति सहानुभूति है (आप Ubuntu रिपॉजिटरी से जावा स्थापित करते हैं और अब oracle.com पर उपलब्ध डाउनलोड से)।



10

यदि आप किसी भी प्रकार का विकास कर रहे हैं तो आपको JDK (Java Development Kit) को इंगित करना होगा। अन्यथा, आप JRE (Java रनटाइम एनवायरनमेंट) को इंगित कर सकते हैं।

JDK में वह सब कुछ है जो JRE में है और बहुत कुछ। यदि आप सिर्फ जावा प्रोग्राम को अंजाम दे रहे हैं, तो आप JRE या JDK को इंगित कर सकते हैं।

आपको अपने JAVA_HOME द्वारा उपयोग किए जा रहे वर्तमान जावा के आधार पर सेट करना चाहिए । readlinkवर्तमान जावा के लिए एक प्रतीकात्मक लिंक का मूल्य प्रिंट करेगा और sedइसे JRE निर्देशिका में समायोजित करेगा:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

यदि आप JDA को JAVA_HOME सेट करना चाहते हैं, तो आपको एक फ़ोल्डर और ऊपर जाना चाहिए:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

7

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

आपको sudo update-alternatives --config javaडिफ़ॉल्ट जावा सेट करने के लिए उपयोग करने की आवश्यकता है ।

Https://askubuntu.com/questions/121654/how-to-set-default-java-version का संदर्भ लें ।


5

देखें इस ; Daud

sudo  update-java-alternatives --list

नाम और निर्देशिका द्वारा मशीन पर सभी जावा संस्थापनों को सूचीबद्ध करने के लिए, और फिर चलाएं

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

कौन सा JRE / JDK उपयोग करना है, यह चुनने के लिए।

यदि आप प्रत्येक जावा कार्य के लिए अलग-अलग JDK / JRE का उपयोग करना चाहते हैं, तो आप एक समय में एक जावा निष्पादन योग्य को कॉन्फ़िगर करने के लिए अद्यतन-विकल्प चला सकते हैं; तुम दौड़ सकते हो

sudo  update-alternatives --config java[Tab]

जावा कमांड को देखने के लिए जिसे कॉन्फ़िगर किया जा सकता है (जावा, जावा, जावा, जावा, आदि)। और तब

sudo  update-alternatives --config [javac|java|javadoc|etc.]

जावा कार्य / कमांड को एक विशेष JDK / JRE से संबद्ध करेगा।

आपको कुछ अनुप्रयोगों के लिए JAVA_HOME सेट करने की आवश्यकता हो सकती है: इस उत्तर से आप उपयोग कर सकते हैं

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

JRE के लिए, या

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

JDKs के लिए।


एक अन्य दृष्टिकोण:java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment
Xdg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.