एक ही लिनक्स मशीन पर कई जावा वातावरण


9

एक ही लिनक्स मशीन पर कई समवर्ती जावा JDK संस्करण स्थापित करने का सबसे कुशल तरीका क्या है ?

मुझे Java5 की आवश्यकता है जबकि मेरे वर्तमान उबंटू 9.10 कार्मिक जावा 6 के साथ लोड होते हैं।

मुझे पता है कि मैं इसके लिए एक वीएम सेटअप कर सकता हूं लेकिन मैं विकल्पों की तलाश कर रहा हूं।

जवाबों:


5

यदि आप सन से बाइनरी डाउनलोड करते हैं, तो आप इसे उस निर्देशिका में स्थापित कर सकते हैं जिसे आप पसंद करते हैं। फिर बस अपने कोड में उन कामों का संदर्भ लें, और आप जाने के लिए अच्छे हैं।

बाइनरी इंस्टॉलर के साथ, यह अपना खुद का नाम उपनिर्देशिका (जैसे आपके उदाहरण में, /usr/java/jdk1.5.0_) बनाएगा, ताकि आप जितने चाहें डाउनलोड कर सकें, और वे खुद को उचित रूप से नामांकित करेंगे। उप drectories।

मुख्य जावा बाइनरी / usr / बिन में रहता है, इसलिए यदि आप उस बिंदु को बदलना चाहते हैं जहां आप "जावा" टाइप करते हैं तो यह आपके जावा तक पहुँचता है, और यह नहीं कि आप पुराने को / usr / बिन से बाहर ले जाते हैं , और अपने नए को वहां लिंक करें। टाइपिंग which javaआपको बताएगा कि आपके सिस्टम पर डिफ़ॉल्ट जावा क्या है।

@jldupont: जब मैं समवर्ती इंस्टॉल के बारे में सोचता हूं, तो मैं एक ही मशीन पर कई संस्करणों को स्थापित करने के बारे में सोचता हूं, जो कि मेरा तरीका आपको बिल्कुल पसंद आएगा। मेरे पास लगभग 12 संस्करण हैं जो मेरे उत्पादन बॉक्स पर स्थापित किए गए हैं जो कॉर्पोरेट से हाथ-डाउन-डाउन को संभालने के लिए हैं जो अभी तक अपडेट नहीं किए गए हैं।

हालांकि जब आप "जावा" टाइप करते हैं, तो आप केवल जावा का एक संस्करण प्राप्त करने जा रहे हैं, क्योंकि '/usr/bin'...' में आपको कुछ लिखना होगा जैसे कि /usr/java/jdk1.5.1/ बिन / जावा 'एक विशिष्ट जावा बाइनरी पाने के लिए जो सिस्टम डिफ़ॉल्ट नहीं है।


धन्यवाद, लेकिन मुझे समवर्ती संस्थापनों की आवश्यकता है । मैं उसको कैसे करू?
jldupont

धन्यवाद। मैंने अब JDK5 को इन / ऑप्ट में स्थापित किया है और पर्यावरण चर को सेटअप करने के लिए खुद को बैश स्क्रिप्ट लिखी है ... ऐसा लगता है कि यह काम करता है। मुझे लगा कि इससे ज्यादा दर्द होगा!
15

@jldupont: वास्तव में यह एक ऐसी चीज है जो मुझे लिनक्स के बारे में बहुत पसंद है ... चूंकि रास्ते में पाने के लिए कोई रजिस्ट्री नहीं है, आप एक ही चीज़ को सौ बार स्थापित कर सकते हैं, और यह तब तक समस्या नहीं है जब तक आप सुनिश्चित कर रहे हैं सामान्य फ़ाइलों को ओवर-राइट करने के लिए नहीं। मैं बहुत से लोगों को जानता हूं जो (उदाहरण के लिए) अपाचे के कई अलग-अलग संस्करण चलाते हैं। मैं खुद पर्ल और जावा के कई संस्करण चलाने के लिए तैयार हूं।
शैतानिकपपी

1

बस ओरेकल से .bin फ़ाइल को डाउनलोड और निष्पादित करें जो फिर एक फ़ोल्डर में खुद को निकालता है। इस फोल्डर (उदा jdk1.6.0_32) को / usr / lib / jvm में ले जाएँ और फिर स्क्रिप्ट का setjavaउपयोग मैं जावा संस्करण बदलने के लिए करूँगा। हालांकि exportबयानों के कारण आपको उसी टर्मिनल में रहना होगा। इसके अलावा कुछ छोटे jvm टूल सेट नहीं किए जा सकते हैं लेकिन मुझे लगता है कि इसे ज्यादातर मामलों में काम करना चाहिए। इसके अलावा, मैं एक शेल नोब हूं तो कृपया मुझे सही करें अगर कोई बेहतर संभावना है :-) मेरे लिए कोड है:

#!/bin/bash
# shouldnt be used in a loop, else the path may become too long

if [[ $(/usr/bin/id -u) -ne 0 ]]; then
    echo "Not running as root"
    exit
fi

case "$1" in
  6)
    echo "Setting Java version 6"
    export PATH=/usr/lib/jvm/jdk1.6.0_32/bin:$PATH
    export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_32
    sudo rm /usr/bin/java
    sudo rm /usr/bin/javac
    sudo rm /usr/bin/javadoc
    sudo rm /usr/bin/javah
    sudo rm /usr/bin/javap
    sudo rm /usr/bin/javaws
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/java /usr/bin/java
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javac /usr/bin/javac
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javadoc /usr/bin/javadoc
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javah /usr/bin/javah
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javap /usr/bin/javap
    sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javaws /usr/bin/javaws
    javac -version    
    java -version
    ;;
  7)
    echo "Setting Java version 7"
    export PATH=/usr/lib/jvm/java-7-openjdk/bin:$PATH
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/
    sudo rm /usr/bin/java
    sudo rm /usr/bin/javac
    sudo rm /usr/bin/javadoc
    sudo rm /usr/bin/javah
    sudo rm /usr/bin/javap
    sudo rm /usr/bin/javaws
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/java /usr/bin/java
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javadoc /usr/bin/javadoc
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javah /usr/bin/javah
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javap /usr/bin/javap
    sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javaws /usr/bin/javaws
    javac -version
    java -version
    ;;
  *)
    echo "Usage: $0 {6|7}"

esac
exit 0

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