Ответы:
Если вы загружаете бинарный файл linux от Sun, вы можете установить его в любой каталог, который вам нравится. Затем просто укажите ссылки на эти библиотеки в своем коде, и все готово.
С помощью бинарного установщика он создаст свой собственный именованный подкаталог (например, в вашем примере /usr/java/jdk1.5.0_), так что вы можете скачать столько, сколько захотите, и они выстроятся в соответствующие имена суб-drectories.
Основной двоичный файл 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 могут быть не установлены, но я думаю, что это должно работать в большинстве случаев. Кроме того, я noob оболочки, поэтому, пожалуйста, поправьте меня, если есть лучшая возможность :-) Код для меня:
#!/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