Jawaban:
Jika Anda mengunduh biner linux dari Sun, Anda dapat menginstalnya di direktori apa pun yang Anda suka. Kemudian hanya referensi lib itu dalam kode Anda, dan Anda siap melakukannya.
Dengan penginstal biner, ia akan membuat subdirektori bernama sendiri (misalnya dalam contoh Anda, /usr/java/jdk1.5.0_), sehingga Anda dapat mengunduh sebanyak yang Anda inginkan, dan mereka akan berbaris dengan nama yang tepat sub-drectories.
Biner java utama tinggal di / usr / bin, jadi jika Anda ingin menggantinya ke titik di mana ketika Anda mengetik "java" itu mengakses java Anda, dan bukan yang itu, Anda hanya memindahkan yang lama dari / usr / bin , dan tautkan yang baru di sana. Mengetik which java
akan memberi tahu Anda apa java default pada sistem Anda.
@ jldupont: Ketika saya memikirkan menginstal bersamaan, saya memikirkan beberapa versi diinstal pada mesin yang sama, yang metode saya benar-benar akan memberi Anda. Saya memiliki sekitar 12 versi java yang diinstal pada kotak produksi saya untuk menangani hand-me-downs dari perusahaan yang belum diperbarui.
Namun ketika Anda mengetik "java" Anda hanya akan mendapatkan satu versi java, karena itulah yang ada di '/usr/bin'... Anda harus mengetikkan sesuatu seperti' /usr/java/jdk1.5.1/ bin / java 'untuk mendapatkan biner java tertentu yang bukan sistem default.
Cukup unduh dan jalankan file .bin dari oracle yang kemudian mengekstrak dirinya ke dalam folder. Pindahkan folder ini (mis. jdk1.6.0_32
) Ke / usr / lib / jvm dan kemudian skrip yang setjava
saya gunakan untuk mengubah versi java. Namun, karena export
pernyataan itu Anda harus tetap di terminal yang sama. Juga beberapa alat jvm kecil mungkin tidak diatur tetapi saya kira itu harus bekerja dalam banyak kasus. Saya juga seorang shell noob jadi tolong perbaiki saya jika ada kemungkinan yang lebih baik :-) Kode untuk saya adalah:
#!/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