डिफ़ॉल्ट जावा संस्करण कैसे सेट करें?


122

मैंने इस प्रश्न पर बताए गए सभी निर्देशों का पालन किया , लेकिन इसके अंतिम भाग के साथ कुछ समस्याओं का सामना कर रहा हूं।

मेरे पास वास्तव में जावा का संस्करण 6.22 है और मैं 6.30 संस्करण में अपडेट करना चाहूंगा।

इसलिए निकाले गए निर्देशिका java-6-oracleको स्थानांतरित करने के बाद /usr/lib/jvmमुझे नहीं पता कि क्या करना है, क्योंकि स्क्रिप्ट जो कि 5 से जावा 6 से अपडेट से ऊपर के उत्तर में इंगित की गई है।

अगर मैं एक lsdir में करूँ तो यहाँ क्लीयरनेस के लिए आउटपुट है /usr/lib/jvm:

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

अब मुझे क्या करना चाहिए?


जोड़ा गया भाग

@Fossfreedom के सुझाव के तहत मैंने वैसे भी स्क्रिप्ट चलाई और वास्तव में इसने जावा संस्करण को अद्यतन किया।

वास्तव में अगर मैं कमांड java -versionआउटपुट चलाता हूं तो निम्नलिखित होंगे:

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

नहीं है अभी भी एक समस्या है, अगर इरुन javac -versionयह मुझे स्थापित पुराने संस्करण देता है:

$ javac -version
javac 1.6.0_22

और अगर मैं इस लिंक पर परीक्षक का उपयोग करता हूं तो यह मुझे बताएगा कि संस्करण है

Java Version 1.6.0_22 from Sun Microsystems Inc.

क्या गलत हो रहा है?

ऐसा लगता है कि जावा रनटाइम एनवायरनमेंट ने अपडेट किया है, लेकिन ब्राउज़र के लिए जावा कंपाइलर और जावा प्लगइन नहीं है।

मैं उन्हें कैसे अपडेट कर सकता हूं?


अन्य जुड़े भाग

sudo update-alternatives --config java आउटपुट के बाद वापस आ जाएगी

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

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

ये इस तथ्य से समझ में आता है कि JRE को 6.31 संस्करण में ठीक से अपडेट किया गया है, मुद्दे जावा कंपाइलर और जावा ब्राउज़र प्लगइन पर हैं।

कोई विचार?


@fossfreedom मैंने यह कोशिश नहीं की है क्योंकि मुझे लगा कि यह एक अच्छा विचार नहीं है क्योंकि इसे जावा 5 से 6 में अपलोड करने के लिए स्पष्ट रूप से लिखा गया है, क्या मुझे वैसे भी होना चाहिए?
मट्टियो

1
हम्म् - संभवतः आप भ्रमित कर रहे हैं कि वेबअप 8 स्क्रिप्ट 0.5b है? यह स्क्रिप्ट का संस्करण है - यह जावा संस्करण को संदर्भित नहीं करता है। कोशिश करो। जब आप स्क्रिप्ट चलाते हैं, तो विंडो जैसा दिखता है, उसका स्क्रीनशॉट देखने देता है।
fossfreedom

@fossfreedom हाँ जो मुझे पूरी तरह से भ्रमित करता है; DI ने स्क्रिप्ट को चलाया! विचाराधीन संपादन की जाँच करें! मेरी मदद करने के लिए बहुत कुछ ..
Matteo

कितना विचित्र ... कभी सामना नहीं हुआ। वैसे भी - नीचे दिए गए उत्तर को देखें - आपको sudo update-alternativesउदाहरण के अनुसार सक्षम होना चाहिए ।
जीवाश्म

@fossfreedom ने फिर अपडेट किया सवाल!
मट्टियो

जवाबों:


103

अपना पहला प्रश्न फिर से करें:

संभवतः आप भ्रमित कर रहे होंगे कि webupd8 स्क्रिप्ट 0.5b है। यह स्क्रिप्ट का संस्करण है - यह जावा संस्करण को संदर्भित नहीं करता है।

जावा संस्करण की सेटिंग के लिए आगे।

मुझे संदेह है कि आपको जेवैक कंपाइलर का रास्ता स्पष्ट रूप से देना होगा

अर्थात

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

के बाद:

sudo update-alternatives --config javac

जावा क्रोम प्लगइन की स्थापना के संबंध में।

गुरु प्रश्न:

मैं Oracle JDK 6 कैसे स्थापित करूं?

इस जानकारी को शामिल करता है - चूंकि आपकी फ़ोल्डर संरचना थोड़ी अलग है, आपकी लिंक कमांड होनी चाहिए:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

अपने आप ही यह संकलक को बदल देता है - अद्यतन-जावा-विकल्प के लिए नीचे दिए गए उत्तर को देखें जो कि जावा से संबंधित सभी विकल्पों को स्विच करना संभालता है, जो कि मेरे सिस्टम पर 82 है।
ग्रेग

55

देखें इस ; 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 के लिए।


25

मुझे लगता है कि आपको पैकेज update-java-alternativesसे कमांड java-commonऔर *.jinfoइसके द्वारा उपयोग की जाने वाली फाइलों पर एक नज़र डालनी चाहिए । इसके साथ आपको जावा इंस्टॉलेशन (जेडीके, जेआरई, ... की परवाह किए बिना) के बीच पूरी तरह से स्विच करने में सक्षम होना चाहिए।


2
मैंने कोशिश की update-java-alternativesऔर फिर java -versionसही था, लेकिन लिंक $JAVA_HOMEअभी भी गलत था ... मैंने उस एक को मैन्युअल रूप से बदल दिया, लेकिन मुझे आश्चर्य है कि क्या update-java-alternativesउस संबंध में कुछ गायब है ।
एलेक्सिस विल्के

6

Ubuntu / linux पर आप जावा संस्करण का उपयोग कर स्विच कर सकते हैं

update-alternatives --config java

लेकिन इससे पहले, आपको संस्करण स्थापित करने की आवश्यकता है।

आप एकाधिक JVM को स्थापित करने के लिए इस स्क्रिप्ट (./install-java.sh) का उपयोग कर सकते हैं

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
 jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
 schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
 --install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)

echo "RUN update-alternatives --config java"

इस स्क्रिप्ट को उस फ़ोल्डर में रखें जहाँ JVM (s) को अनपैक किया गया है, और चलाएँ:

/opt/install-java.sh

अगला उपयोग:

update-alternatives --config java

1

यदि आप javac javaws javadoc या किसी अन्य जावा संबंधित कमांड के लिए मैन्युअल सेट विकल्प पर जा रहे हैं, तो आप उन्हें java altenative के दास बनाना चाह सकते हैं।

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

java - auto mode link best version is /opt/jdk1.8.0_74/bin/java लिंक वर्तमान में /opt/jdk1.8.0_74/bin/java लिंक पर इंगित करता है java is / usr / bin / jav दास दास javadoc is / usr / bin है / javadoc /opt /jdk1.8.0_74/bin/java - प्राथमिकता 0 दास javadoc: /opt/jdk1.8.0_74/bin/javadoc

/ Jdk1.8.0_74/ को dir के साथ बदलें जहाँ आपका jdk स्थापित है।


0

/etc/environmentअपने किसी पाठ संपादक में खोलें और निम्नलिखित पंक्ति जोड़ें:

JAVA_HOME="usr/lib/jvm/open-jdk 

- जावा पथ अलग हो सकता है।
इस कमांड को चलाकर, चर को लोड करने के लिए स्रोत का उपयोग करें:

source /etc/environment

फिर इस कमांड को चलाकर वेरिएबल को चेक करें:

echo $JAVA_HOME

इस पथ सेट के साथ, यह कमांड चलाएँ:

sudo  update-java-alternatives --list

अपना डिफ़ॉल्ट जावा संस्करण चुनें।

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