En Ubuntu es posible tener varias JVM al mismo tiempo. El predeterminado se selecciona con update-alternatives
. Pero esto no establece la JAVA_HOME
variable de entorno, debido a una política de Debian .
Estoy escribiendo un script de inicio (bash), que inicia una aplicación java. Esta aplicación Java necesita la JAVA_HOME
variable de entorno. Entonces, ¿cómo obtener la ruta de la JVM que está seleccionada actualmente por update-alternatives
?
echo $(readlink -f /usr/bin/java | sed "s:bin/java::")
, la salida era/usr/lib/jvm/java-7-oracle/jre/
y no/usr/lib/jvm/java-7-oracle/
La solución de danadam se puede adoptar fácilmente para recuperar la ruta JDK (es decir, no JRE) según sea necesario:
fuente
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
En
.bashrc
fue útil para mí.fuente
Entonces, ¿estás diciendo que este comando no hace nada por ti?
fuente
Instalé Java con
y luego para encontrar la ubicación
fuente
Como una extensión de danadams, responda:
En primer lugar, instale el segundo Java JRE como la tercera opción de Java, con prioridad de "3":
Luego, puede enumerarlos:
Puede configurar la alternativa a mano, usando esto:
Luego, su script puede configurarlo sobre la marcha, así:
Esto ilustra mejor lo que está haciendo el comando 'sed'. Aunque todavía necesita establecer los enlaces para javaw y javac, etc., cada uno se hace por separado.
fuente
Hace un tiempo creé un tutorial en el foro de Ubuntu sobre cómo instalar el último JRE / JDK desde el sitio web de Java. También cubre cómo habilitarlo en todo el sistema, agregando la ubicación JRE / JDK a la variable PATH. Si lo desea, también puede agregar JAVA_HOME al script, mencionado al final del tema.
Compruébalo: http://ubuntuforums.org/showthread.php?t=1437100
fuente
Si Java está configurado con
update-alternatives
o fue agregado a su variable PATH manualmente, entonces no"/usr/bin/java"
se necesita un código rígido . Yo uso esta solución en mi .bashrc:export JAVA_HOME=$(readlink -m $(which java)/../..)
fuente