जावा-विसर्जन JAVA_HOME में परिभाषित एक से भिन्न संस्करण क्यों लौटा रहा है?


2

मैं सेट करने की कोशिश कर रहा हूं JAVA_HOME Ubuntu ओएस में। मैंने नकल की है jdk 1.7 में /usr/lib/jvm और सेट करें JAVA_HOME में /etc/profile फ़ाइल।

की सामग्री /usr/lib/jvm फ़ोल्डर इस प्रकार हैं:

shekhar@ubuntu:~$ ls /usr/lib/jvm/
default-java        java-1.6.0-openjdk       java-6-openjdk         java-6-openjdk-i386  jdk1.7.0_01
java-1.5.0-gcj-4.6  java-1.6.0-openjdk-i386  java-6-openjdk-common  java-7-openjdk-i386

और अंतिम कुछ पंक्तियाँ /etc/profile फ़ाइल इस प्रकार है:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_01
export PATH=$PATH:$JAVA_HOME/bin

यह सब खत्म करने के बाद जब मैं दौड़ता हूं java -version कमांड मैं निम्नलिखित उत्पादन प्राप्त करें:

shekhar@ubuntu:~$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)

और जब मैं दौड़ता हूं ls -lah कमांड मुझे निम्न आउटपुट मिलता है:

shekhar@ubuntu:~$ ls -lah /usr/bin/java
lrwxrwxrwx 1 root root 22 Sep 29 09:58 /usr/bin/java -> /etc/alternatives/java
shekhar@ubuntu:~$ ls -lah /etc/alternatives/java
lrwxrwxrwx 1 root root 45 Sep 29 09:58 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java

क्या कोई मुझे बता सकता है कि मुझे कौन सी बात याद आ रही है? उबंटू अभी भी jdk खोलने की ओर क्यों इशारा कर रहा है और मेरे jdk 7 को नहीं?

PS: मैंने देखा है यह समान है प्रश्न और उसके उत्तर लेकिन यह प्रश्न विंडोज ओएस से संबंधित है और उबंटू के लिए नहीं है इसलिए मैं उबंटू के लिए इस तरह के प्रश्न को दोहरा रहा हूं।

जवाबों:


3

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

पथ के अंत में आपके JDK1.7 का पथ जोड़ा जाता है। जब आप कमांड लाइन पर 'java --version' टाइप करते हैं, तो सिस्टम शुरुआत से अंत तक उस रास्ते को खोजता है जब तक कि उसे एक रास्ता नहीं मिल जाता जिसमें कमांड 'java' हो। इसलिए, जो आप देख रहे हैं, वह आपके अन्य जावा संस्करणों में से एक से संस्करण का उत्पादन है।

मैं आमतौर पर उबंटू में क्या करता हूं, मेरे रास्ते पर है:

echo $PATH

और फिर शुरुआत के पास संभावित जेवीएम पथ की तलाश करें। उस समय, आपके पास इसे ठीक करने के लिए कई विकल्प होंगे:

  1. अपने नए जावा पथ के लिए सिस्टम को इंगित करते हुए एक सिमलिंक बनाएं।

  2. पुराने जावा संस्करण को हटा दें और इसे अपने रास्ते से हटा दें।

मैं विकल्प 2 का विकल्प चुनूंगा। यह कम ही भ्रामक है कि आपको क्या जरूरत नहीं है।


1
हाय, आप सही थे। किसी तरह वहाँ अन्य खुले jdk स्थापित है जो मेरे jdk 1.7 से पहले आ रहा था। मैंने सिर्फ PATH वैरिएबल को फिर से व्यवस्थित किया ताकि PATH में अपना jdk पहले ला सकूं अब इसका काम ठीक है। धन्यवाद...
Shekhar

2

मैं व्यक्तिगत रूप से एक ताजा उबंटू 12.04 स्थापित पर बिल्कुल उसी तरह की समस्या का सामना कर रहा था। मुझे बस इतना करना है कि निम्नलिखित कमांड का उपयोग करके एक विशिष्ट पैकेज की स्थापना रद्द करें:

sudo apt-get remove openjdk-6-jre-headless

इसने / etc / विकल्प के लिंक को हटा दिया और इसे स्थापित java 1.7 में अद्यतन किया

बस इस साझा बिंदु 2 को jmort253 के उत्तर में साझा करना चाहता था।


1

मुझे भी यही समस्या थी, और इसका जवाब PATH में छिपा है:

"$ env | grep जावा" शो चल रहा है:

PATH=/u01/app/oracle/product/11.2.0/xe/bin:/home/rivaldo/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/java/jdk1.6.0_14/bin:/home/rivaldo/bin/eclipse.JEE.Kepler.64
JAVA_HOME=/usr/local/java/jdk1.6.0_14
JDK_HOME=/usr/local/java/jdk1.6.0_14

लेकिन "जावा-वर्सन" अभी भी चल रहा है:

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

मुझे पता चला कि मेरे PATH में "/ / usr / बिन" "/java/jdk1.6.0_14/bin" से पहले है और "ll / usr / bin | grep java" कर रहा हूं:

lrwxrwxrwx 1 root root 39 Jul 31 08:29 /etc/alternatives/java -> /usr/lib/jvm/java-7-oracle/jre/bin/java*

मैंने प्रतीकात्मक लिंक को सही एक में बदल दिया और समस्या हल कर दी। आप पथ पर क्रम भी बदल सकते हैं:

से

export PATH=$PATH:$JAVA_HOME/bin

सेवा मेरे

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