जवाबों:
यदि आप सन से बाइनरी डाउनलोड करते हैं, तो आप इसे उस निर्देशिका में स्थापित कर सकते हैं जिसे आप पसंद करते हैं। फिर बस अपने कोड में उन कामों का संदर्भ लें, और आप जाने के लिए अच्छे हैं।
बाइनरी इंस्टॉलर के साथ, यह अपना खुद का नाम उपनिर्देशिका (जैसे आपके उदाहरण में, /usr/java/jdk1.5.0_) बनाएगा, ताकि आप जितने चाहें डाउनलोड कर सकें, और वे खुद को उचित रूप से नामांकित करेंगे। उप drectories।
मुख्य जावा बाइनरी / usr / बिन में रहता है, इसलिए यदि आप उस बिंदु को बदलना चाहते हैं जहां आप "जावा" टाइप करते हैं तो यह आपके जावा तक पहुँचता है, और यह नहीं कि आप पुराने को / usr / बिन से बाहर ले जाते हैं , और अपने नए को वहां लिंक करें। टाइपिंग which java
आपको बताएगा कि आपके सिस्टम पर डिफ़ॉल्ट जावा क्या है।
@jldupont: जब मैं समवर्ती इंस्टॉल के बारे में सोचता हूं, तो मैं एक ही मशीन पर कई संस्करणों को स्थापित करने के बारे में सोचता हूं, जो कि मेरा तरीका आपको बिल्कुल पसंद आएगा। मेरे पास लगभग 12 संस्करण हैं जो मेरे उत्पादन बॉक्स पर स्थापित किए गए हैं जो कॉर्पोरेट से हाथ-डाउन-डाउन को संभालने के लिए हैं जो अभी तक अपडेट नहीं किए गए हैं।
हालांकि जब आप "जावा" टाइप करते हैं, तो आप केवल जावा का एक संस्करण प्राप्त करने जा रहे हैं, क्योंकि '/usr/bin'...' में आपको कुछ लिखना होगा जैसे कि /usr/java/jdk1.5.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