Acabo de ejecutar el script a continuación y recupera y descomprime el JDK en la ubicación correcta. El problema es que cada comando java
(copiado a /urs/bin) produce errores. Luego comprobé dos veces yendo al directorio de instalación de JDK por medio de cd
(ahora estoy en JDK/bin) y escribo: ./java -version
y obtengo: ./java: No such file or directory
, ¡pero java
está ahí! ls -l
en el JDK muestra que todos los clientes java
están dentro del contenedor .Java está instalado, en el listado, pero la ejecución produce "./java: No existe ningún archivo o directorio"
#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
#Modify these variables as needed...
tempWork=/tmp/work
locBin=/usr/local/bin
javaUsrLib=/usr/lib/jvm
sudo mkdir -p $javaUsrLib
mkdir -p $tempWork
cd $tempWork
#Update this line to reflect newer versions of JDK...
wget http://download.oracle.com/otn-pub/java/jdk/7u2-b13/jdk-7u2-linux-i586.tar.gz
#Extract the download
tar -zxvf $tempWork/*
#Move it to where it can be found...
sudo mv -f $tempWork/jdk1.7* $javaUsrLib/
sudo ln -f -s $javaUsrLib/jdk1.7*/bin/* /usr/bin/
sudo rm -rf $tempWork
#Update this line to reflect newer versions of JDK...
export JAVA_HOME="$javaUsrLib/jdk1.7.0_02"
if ! grep "JAVA_HOME=$javaUsrLib/jdk1.7.0_02" /etc/environment
then
echo "JAVA_HOME=$javaUsrLib/jdk1.7.0_02"| sudo tee -a /etc/environment
fi
sudo /sbin/reboot
exit 0
Correr me da ls -l /usr/lib/jvm/jdk1.7.0_02/bin/java
: [email protected]:~$ -rwxr-xr-x 1 yucca yucca 5654 2011-11-17 22:38 /usr/lib/jvm/jdk1.7.0_02/bin/java
también funcionó: file /usr/lib/jvm/jdk1.7.0_02/bin
con una potencia de:
/usr/lib/jvm/jdk1.7.0_02/bin: directory
¿Reiniciando para instalar java? Esa no es la "Manera de Unix". –
@MarcB Si el usuario cierra el terminal, el entorno (con Java) se perderá? Mi script funcionó hace unos días y cuando corro con bash -x puedo ver el jdk siendo desempaquetado en su totalidad ... – thejartender
No, el elemento '/ etc/environment' asegura que la variable JAVA_HOME se mostrará en todos los shells nuevos. La única razón por la que puedo pensar para el reinicio es asegurarme de que todos los 'viejos' jvms actualmente en ejecución terminen. –