Відповіді:
Якщо ви завантажуєте бінарний файл Linux від Sun, ви можете встановити його в будь-який каталог, який вам подобається. Тоді просто посилайтеся на ці вкладки у своєму коді, і ви готові йти.
За допомогою інструмента для встановлення двійкового файлу він створить власний іменований підкаталог (наприклад, у вашому прикладі /usr/java/jdk1.5.0_), тож ви можете завантажити скільки завгодно бажаючих, і вони розташуються у відповідному імені субректорії.
Основний двійковий файл Java живе в / usr / bin, тому якщо ви хочете замінити його на той момент, коли при введенні "java" він отримує доступ до вашої Java, а не той, ви просто перемістіть старий з / usr / bin , і зв’яжіть свій новий там. Введення тексту which java
покаже вам, що таке Java за замовчуванням у вашій системі.
@jldupont: Коли я думаю про одночасні встановлення, я думаю про кілька версій, встановлених на одній машині, які мій метод вам абсолютно дасть. У мене на виробничій коробці встановлено близько 12 версій Java для обміну руйнуваннями від корпоративних, які ще не оновлювались.
Однак, коли ви вводите "java", ви отримаєте лише одну версію java, оскільки саме це є в "/usr/bin'.... Вам потрібно буде набрати щось на кшталт" /usr/java/jdk1.5.1/ bin / java ', щоб отримати певний двійковий файл Java, який не є системним замовчуванням.
Просто завантажте та виконайте .bin-файл із Oracle, який потім витягується у папку. Перемістіть цю папку (наприклад jdk1.6.0_32
) у / usr / lib / jvm, а потім скрипт, який setjava
я використовую для зміни версій Java. Зважаючи на 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