readlink
El comando le mostrará la ruta completa del enlace simbólico:
readlink -f `which java`
Lo mejor que puede hacer es evitar Java de Red Hat por completo.
Obtenga su java de Oracle y colóquelo en /opt. Luego simplemente cree el enlace simbólico /opt/java -> /opt/jdk-someversion, y cree /etc/profile.d/java.sh que contenga
#!/bin/sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
Luego, para cambiar java en todo el sistema, simplemente cambie el enlace simbólico en opt. Para usar múltiples versiones de java, use scripts como el anterior con JAVA_HOME apropiado.
Además, el script /sbin/service utilizado para ejecutar los scripts /etc/init.d eliminará las variables de entorno:ejecuta env -i explícitamente. Por ejemplo, su Tomcat no obtendrá JAVA_HOME, tendrá que crear setenv.sh en $CATALINA_BASE/bin.
El inconveniente de este enfoque es que no recibe actualizaciones de Java de Red Hat.
Primero, prueba echo $JAVA_HOME
desde la línea de comandos. Desde java
ya está en tu camino, JAVA_HOME
se puede configurar.
¿Cuál es la mejor manera de averiguar el directorio de instalación de mi instalación de Java?
Ejecutando el comando which java
te indicará dónde java
está instalado.
y luego configure JAVA_HOME
Puedes editar ~/.bashrc
, ~/.bash_profile
, o /etc/profile
para configurar JAVA_HOME
. Configurándolo en ~/etc/profile
lo configurará en todo el sistema, y esto probablemente no sea lo que desea. Por ejemplo, di la salida de which java
es /opt/jdk_1.7.0_25
, entonces simplemente agregaría export JAVA_HOME=/opt/jdk_1.7.0_25
a ~/.bashrc
o ~/.bash_profile
y luego ejecuta source ~/.bashrc
(o source ~/.bash_profile
si lo configura allí).
Tenga en cuenta que en este caso, java
está en el PATH
pero en algunos casos necesitarías agregar export PATH=$PATH:$JAVA_HOME/bin
para agregar el JAVA_HOME
variable al PATH
.
RHEL utiliza un subsistema de alternativas para administrar las instalaciones de Java. Puede tener varias versiones de Java instaladas, pero solo una está activa a la vez.
Esto significa que ejecutar which java
no proporciona información útil. La salida sería la misma sin importar qué instalación de Java se seleccione a través de alternativas. Ejecutando readlink -f $(which java)
(como ya se sugirió en otro comentario) o usando preguntas alternativas alternatives --display java
sería mejor.
Vea el ejemplo de una máquina RHEL 6 con OpenJDK instalado (que se envía con RHEL):
[[email protected] ~]# which java
/usr/bin/java
[[email protected] ~]# readlink -f $(which java)
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64/jre/bin/java
[[email protected] ~]# alternatives --display java | head -2
java - status is manual.
link currently points to /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
Tenga en cuenta que la variable de entorno JAVA_HOME
no está definido en ninguna parte de forma predeterminada, deberá definirlo usted mismo en .bashrc
de usuario que lo requiere.
En el ejemplo anterior, valor correcto de JAVA_HOME
sería /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
.
Consulte los detalles en la documentación Instalar OpenJDK, busque la sección "Opcional:configure la variable de entorno JAVA_HOME".