Respostas:
Se você baixar o binário linux da Sun, poderá instalá-lo em qualquer diretório que desejar. Depois, basta referenciar essas bibliotecas no seu código, e você estará pronto.
Com o instalador binário, ele criará seu próprio subdiretório nomeado (por exemplo, em seu exemplo, /usr/java/jdk1.5.0_), para que você possa baixar quantos quiser e eles se alinharão com o nome apropriado subdiretórios.
O binário java principal mora em / usr / bin, portanto, se você quiser substituí-lo até o ponto em que quando digita "java", ele acessa seu java, e não aquele, basta mover o antigo para fora de / usr / bin e vincule seu novo. Digitar which java
lhe dirá qual é o java padrão no seu sistema.
@ jldupont: Quando penso em instalações simultâneas, penso em várias versões instaladas na mesma máquina, que meu método absolutamente fornecerá. Tenho cerca de 12 versões do java instaladas na minha caixa de produção para lidar com transferências de empresas que ainda não foram atualizadas.
No entanto, quando você digita "java", obtém apenas uma versão do java, já que é isso que está em '/usr/bin' ... Você precisaria digitar algo como '/usr/java/jdk1.5.1/ bin / java 'para obter um binário java específico que não é o padrão do sistema.
Basta baixar e executar o arquivo .bin do oracle, que então se extrai em uma pasta. Mova esta pasta (por exemplo jdk1.6.0_32
) para / usr / lib / jvm e, em seguida, o script que setjava
eu uso para alterar as versões java. Por causa das export
instruções, você precisa permanecer no mesmo terminal. Além disso, algumas pequenas ferramentas jvm podem não estar definidas, mas acho que deve funcionar na maioria dos casos. Também sou um noob shell, por favor, corrija-me se houver uma possibilidade melhor :-) O código para mim é:
#!/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