¿Cómo cambio el valor de JAVA_HOME
en Ubuntu para que apunte a Java de Oracle?
¿Debería señalar java-6-sun
o java-6-sun-1.6.0.24
?
¿Cómo cambio el valor de JAVA_HOME
en Ubuntu para que apunte a Java de Oracle?
¿Debería señalar java-6-sun
o java-6-sun-1.6.0.24
?
Respuestas:
Pongo la linea:
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
en mi ~/.bashrc
archivo
/usr/lib/jvm/java7-oracle
debe ser un enlace simbólico que apunta a /usr/lib/jvm/java-7-oracle-[version number here]
.
La razón por la que es un enlace simbólico es que en caso de que haya una nueva versión de la JVM, no necesita actualizar su .bashrc
archivo, debería apuntar automáticamente a la nueva versión.
Si desea establecer JAVA_HOME
variables de entorno a nivel global y a nivel del sistema, el uso debe establecerse en el /etc/environment
archivo.
oracle-java7-set-default
paquete.
Si desea cambiarlo globalmente y a nivel de sistema;
En
/etc/environment
agrega esta línea:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOME
no se resuelven cuando se usan así PATH=$JAVA_HOME/bin
, intentaron reiniciar, sin efecto. ¿Tengo que export
o set
JAVA_HOME
sea en este archivo o perfil?
para configurar el Kit de desarrollo Java SE de Oracle como el Java predeterminado del sistema, simplemente descargue el último Kit de desarrollo Java SE desde aquí y luego cree un directorio en algún lugar que desee en su sistema de archivos, por ejemplo, /usr/java
ahora extraiga los archivos que acaba de descargar en ese directorio:
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
ahora para configurar su JAVA_HOME
variable de entorno:
$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000
asegúrese de que java de Oracle esté configurado como java predeterminado por:
$ update-alternatives --config java
obtienes algo como esto:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/java/jdk1.8.0_05/bin/java 20000 auto mode
1 /opt/java/jdk1.8.0_05/bin/java 20000 manual mode
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
preste atención al asterisco antes de los números de la izquierda y, si no está configurado el correcto, elija el correcto escribiendo el número y presionando Intro. ahora prueba tu java:
$ java -version
si obtiene algo como lo siguiente, está listo para comenzar:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
También tenga en cuenta que puede necesitar permiso de root o estar en el grupo de sudoers para poder hacer esto. He probado esta solución en ubuntu 12.04 y Debian wheezy y funciona en ambos.
Si desea que esta variable de entorno esté disponible para todos los usuarios y al iniciar el sistema, puede agregar lo siguiente a /etc/profile.d/java.sh ( créelo si es necesario):
export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Luego, en una ejecución de terminal:
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
Mi segunda pregunta es: ¿debería apuntar a java-6-sun o java-6-sun-1.6.0.24?
Siempre debe apuntar java-7-oracle
como enlaces simbólicos al último instalado (suponiendo que haya instalado Java desde los repositorios de Ubuntu y ahora desde la descarga disponible en oracle.com).
java 6
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
o java 7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Si está haciendo algún tipo de desarrollo, debe apuntar al JDK (Kit de desarrollo de Java). De lo contrario, puede apuntar al JRE (Java Runtime Environment).
El JDK contiene todo lo que tiene el JRE y más. Si solo está ejecutando programas Java, puede apuntar a JRE o JDK.
Debería establecer en JAVA_HOME
función de Java actual que está utilizando.
readlink
imprimirá el valor de un enlace simbólico para Java actual y sed
lo ajustará al directorio JRE:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Si desea configurar JAVA_HOME en JDK, debe subir una carpeta más:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
Si desea utilizar una versión específica de Java cuando se instalan varios JDK, simplemente configurar JAVA_HOME puede no funcionar.
Debe usar sudo update-alternatives --config java
para establecer Java predeterminado.
Mira esto ; correr
sudo update-java-alternatives --list
para enumerar todas las instalaciones de Java en una máquina por nombre y directorio, y luego ejecutar
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
para elegir qué JRE / JDK usar.
Si desea utilizar diferentes JDK / JRE para cada tarea de Java, puede ejecutar alternativas de actualización para configurar un ejecutable de Java a la vez; Tu puedes correr
sudo update-alternatives --config java[Tab]
para ver los comandos de Java que se pueden configurar (java, javac, javah, javaws, etc.). Y entonces
sudo update-alternatives --config [javac|java|javadoc|etc.]
asociará esa tarea / comando Java a un JDK / JRE particular.
Es posible que también necesite configurar JAVA_HOME para algunas aplicaciones: a partir de esta respuesta puede usar
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
para JRE, o
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
para JDKs.
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment