Solución al error “JAVA_HOME is not set” en Linux para React Native

Si estás desarrollando con React Native en Linux y encuentras el siguiente error al ejecutar npm start seguido de a (“Run on Android”):

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

Esto significa que tu sistema no encuentra la instalación de Java, ya sea porque no está configurada correctamente o no está instalada. A continuación, te explico paso a paso cómo resolverlo en Linux.


Paso 1: Verificar si Java está instalado

Primero, verifica si Java está instalado ejecutando:

java -version

Si obtienes un mensaje indicando que el comando no está disponible, instala OpenJDK (preferiblemente la versión 11 o 17):

sudo apt update
sudo apt install openjdk-17-jdk

Paso 2: Encontrar la ruta de instalación de Java

Una vez instalado, localiza la ruta del Java Development Kit (JDK). Para ello, ejecuta:

sudo update-alternatives --config java

Esto te mostrará una lista de las versiones de Java disponibles en tu sistema. La ruta que necesitas se verá similar a esta:

/usr/lib/jvm/java-17-openjdk-amd64

Toma nota de esta ruta, ya que la usarás para configurar JAVA_HOME.

Paso 3: Configurar la variable de entorno JAVA_HOME

Edita el archivo de configuración de tu shell (normalmente ~/.bashrc o ~/.zshrc si usas Zsh):

nano ~/.bashrc

Agrega las siguientes líneas al final del archivo:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

Asegúrate de reemplazar /usr/lib/jvm/java-17-openjdk-amd64-openjdk-amd64 con la ruta obtenida en el paso anterior.

Paso 4: Recargar la configuración del shell

Para aplicar los cambios realizados, ejecuta:

source ~/.bashrc

Paso 5: Verificar la configuración

Confirma que la variable JAVA_HOME está configurada correctamente:

echo $JAVA_HOME

Esto debería mostrar la ruta que configuraste, como:

/usr/lib/jvm/java-17-openjdk-amd64

Paso 6: Ejecutar React Native

Ahora, vuelve a intentar ejecutar tu proyecto:

npm start

Selecciona la opción a para “Run on Android” y debería funcionar sin problemas.