Tomcat no arranca: guía práctica de diagnóstico


Fecha de publicación:

Actualizado:


Artículos técnicos > Tomcat no arranca: guía práctica de diagnóstico

Estado y uso seguro en 2026

Conclusión: Lea la primera excepción de causa raíz en Tomcat y en los registros del administrador de servicios antes de cambiar la configuración. Luego verifique la compatibilidad de Java, la propiedad del puerto, los permisos de archivos, la sintaxis XML, el espacio en disco y el CATALINA_BASE efectivo.

Qué aprenderás

  • Un pedido repetible para comprobar el estado del servicio, los registros, el entorno y los conectores.
  • Cómo distinguir un error de inicio de JVM de una configuración de Tomcat o un error de aplicación implementada.
  • Por qué eliminar directorios de trabajo o aumentar la memoria sin pruebas puede ocultar el verdadero problema.

Para quién: Desarrolladores y administradores que responden a un proceso de Tomcat que sale o nunca abre su conector.

Situación en 2026: Los casos originales siguen siendo patrones de diagnóstico útiles, pero las ubicaciones de los archivos y las versiones de Java compatibles dependen de la familia Tomcat instalada y del paquete. No reutilice las opciones JVM heredadas sin consultar la documentación actual de Java.

Nota de seguridad: Los comandos y ejemplos de configuración del artículo original no se han vuelto a ejecutar en un entorno de producción actual. Verifique las versiones compatibles, las copias de seguridad, los controles de acceso y los pasos de reversión en un entorno de prueba independiente antes de aplicarlos.

Fuentes primarias oficiales

Resumen.

Esta guía describe causas habituales por las que Tomcat 9.0.27 no se inicia tras ejecutar startup.bat o startup.sh y muestra cómo diagnosticarlas.

Índice de contenidos

  1. Tomcat no arranca: guía práctica de diagnóstico
  2. resumen

1. Tomcat no arranca: guía práctica de diagnóstico

Hay varias causas de que Tomcat no se inicie, pero esta sección describe los principales eventos que pueden hacer que Tomcat no se inicie.

1-1. JAVA_HOME no está configurado.

【causa】

Si no se establece ni JAVA_HOME ni JRE_HOME, se produce el siguiente error.

startup.bat


C:\Users\user>C:\apache-tomcat-9.0.27\bin\startup.bat
The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program

Solución

Establezca JAVA_HOME o JRE_HOME desde 'Propiedades del sistema, Configuración avanzada, Variables de entorno'. Si se configura correctamente, al escribir "echo %JAVA_HOME%", "echo %JRE_HOME%", etc. en la línea de comandos se producirá la siguiente salida. Como precaución, reinicie el símbolo del sistema si cambia las variables de entorno. Las variables de entorno se leen cuando se inicia el símbolo del sistema.

C:\Users\user>echo %JAVA_HOME%
C:\Program Files (x86)\Java\jdk-11

1-2. La versión de JAVA no es compatible con Tomcat.

【causa】

Tomcat tiene una versión de Java compatible. Se puede encontrar en la siguiente página web de Tomcat.

https://tomcat.apache.org/whichversion.html

Por ejemplo, la versión de Tomcat "9.0.27" sería "9.0.x" de la "Versión de Apache Tomcat" en el sitio anterior, que es "8 y posterior".

Esto significa que la configuración de Java 8 o posterior funcionará.

Solución

Reescriba las variables de entorno a las correspondientes de Java basadas en el siguiente sitio web de Tomcat.

https://tomcat.apache.org/whichversion.html

1-3. JRE_HOME está activado.

【causa】

Tomcat es válido para "JRE_HOME" si "JRE_HOME" y "JAVA_HOME" están configurados. Incluso si miras "JAVA_HOME" y ves que Java es compatible con Tomcat, "JRE_HOME" funcionará, así que "JRE_HOME" debe ser Java compatible con Tomcat.

Solución

Desde 'Propiedades del Sistema, Configuración Avanzada, Variables de Entorno', reescribe Java en JRE_HOME al Java correspondiente a Tomcat.

1-4. Números de puerto conflictivos.

【causa】

Tomcat se inicia en el puerto 8080 por defecto. Si hay otras aplicaciones que se ejecutan en el puerto 8080, se produce el siguiente error.

Critical [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8080]]

Solución

Cambie el puerto de Tomcat o detenga las aplicaciones con números de puerto conflictivos que se estén ejecutando.

El siguiente comando le dirá si hay un conflicto de números de puerto. La parte "8080" debe adaptarse a su propio entorno. Si no se ha modificado ninguna configuración, el valor es 8080. Si no se activa nada, no se devuelve ninguna respuesta.

Nota: Los siguientes comandos son de Windows.

C:\Users\user>netstat -nao | find "8080"
  TCP         0.0.0.0:8080           0.0.0.0:0              LISTENING       5748
  TCP         [::]:8080              [::]:0                 LISTENING       5748
  TCP         [::1]:8080             [::1]:58259            TIME_WAIT       0
  TCP         [::1]:8080             [::1]:58260            TIME_WAIT       0
  TCP         [::1]:8080             [::1]:58261            TIME_WAIT       0

2. resumen

Si Tomcat no se inicia, compruebe los cuatro puntos siguientes.

  • JAVA_HOME no está configurado.
  • La versión de JAVA no es compatible con Tomcat.
  • JRE_HOME está activado.
  • Números de puerto conflictivos.

Si eso no funciona, consulte el siguiente artículo sobre cómo se inicia Tomcat en primer lugar.

Cómo arranca Apache Tomcat: startup, Bootstrap y Catalina