Tomcat non si avvia: guida pratica alla risoluzione
Data di pubblicazione:
Aggiornato:
Articoli > Tomcat non si avvia: guida pratica alla risoluzione
2026 stato e uso sicuro
Conclusione: Leggi il primo root-cause eccezione in Tomcat e service-manager logs prima di cambiare la configurazione. Quindi verificare la compatibilità Java, la proprietà della porta, le autorizzazioni dei file, la sintassi XML, lo spazio del disco e l'efficace CATALINA_BASE.
Cosa imparerai
- Un ordine ripetibile per controllare lo stato del servizio, i registri, l'ambiente e i connettori.
- Come distinguere un guasto di lancio JVM da una configurazione di Tomcat o un guasto di applicazione distribuito.
- Perché eliminare le directory di lavoro o aumentare la memoria senza prove può nascondere il vero problema.
Destinatari: Sviluppatori e amministratori che rispondono a un processo Tomcat che esce o non apre mai il suo connettore.
Nota di aggiornamento (2026): I casi originali rimangono schemi diagnostici utili, ma le posizioni dei file e le versioni Java supportate dipendono dalla famiglia Tomcat installata e dall'imballaggio. Non riutilizzare le opzioni JVM legacy senza controllare la documentazione Java corrente.
Nota di sicurezza: i comandi e gli esempi di configurazione dell'articolo originale non sono stati rieseguiti in un ambiente di produzione moderno. Prima di applicarli, verifica versioni supportate, backup, controlli di accesso e procedura di rollback in un ambiente di prova isolato.
Fonti primarie ufficiali
Panoramica
Questa sezione descrive le cause del mancato avvio di Tomcat e come risolverle. Questa è la causa e il rimedio per i casi in cui Tomcat non si avvia per qualche motivo e si verifica un errore anche se viene eseguito startup.bat o startup.sh. Questa sezione spiega questo problema basandomi sulla versione di Tomcat '9.0.27'.
Indice dei contenuti
1. Tomcat non si avvia: guida pratica alla risoluzione
Le cause del mancato avvio di Tomcat sono varie, ma questa sezione descrive gli eventi principali che possono causare il mancato avvio di Tomcat.
1-1. JAVA_HOME non è impostato.
(causa)
Se non sono impostate né JAVA_HOME né JRE_HOME, viene emesso il seguente errore.
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
(Come affrontarlo)
Impostare JAVA_HOME o JRE_HOME da "Proprietà del sistema, Impostazioni avanzate, Variabili d'ambiente". Se impostato correttamente, digitando 'echo %JAVA_HOME%', 'echo %JRE_HOME%', ecc. al prompt dei comandi si otterrà il seguente risultato. Per precauzione, riavviare il prompt dei comandi se si modificano le variabili d'ambiente. Le variabili d'ambiente vengono lette all'avvio del prompt dei comandi.
C:\Users\user>echo %JAVA_HOME%
C:\Program Files (x86)\Java\jdk-11
1-2. La versione di JAVA non è compatibile con Tomcat.
(causa)
Tomcat ha una versione Java supportata. Si può trovare sul seguente sito web di Tomcat.
https://tomcat.apache.org/whichversion.html
Ad esempio, la versione di Tomcat "9.0.27" sarebbe "9.0.x" della "Versione di Apache Tomcat" sul sito di cui sopra, che è "8 e successive".
Ciò significa che l'impostazione di Java 8 o successiva funzionerà.
(Come affrontarlo)
Riscrivere le variabili d'ambiente con il corrispondente Java basato sul seguente sito web di Tomcat.
https://tomcat.apache.org/whichversion.html
1-3. JRE_HOME è abilitato.
(causa)
Tomcat è valido per "JRE_HOME" se "JRE_HOME" e "JAVA_HOME" sono impostati. Anche se si guarda a "JAVA_HOME" e si vede che Java è compatibile con Tomcat, "JRE_HOME" funzionerà, quindi "JRE_HOME" deve essere Java compatibile con Tomcat.
(Come affrontarlo)
Da 'Proprietà del sistema, Impostazioni avanzate, Variabili d'ambiente', riscrivere Java in JRE_HOME con il Java corrispondente a Tomcat.
1-4. Numeri di porta in conflitto.
(causa)
Tomcat si avvia sulla porta 8080 per impostazione predefinita. Se ci sono altre applicazioni in esecuzione sulla porta 8080, viene emesso il seguente errore.
Critical [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8080]]
(Come affrontarlo)
Modificare la porta di Tomcat o interrompere le applicazioni in esecuzione con numeri di porta in conflitto.
Il comando seguente indica se esiste un conflitto tra i numeri di porta. La parte "8080" deve essere adattata al proprio ambiente. Se non sono state modificate le impostazioni, il valore è 8080. Se non viene attivato nulla, non viene restituita alcuna risposta.
Nota: I seguenti comandi sono 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. sintesi
Se Tomcat non si avvia, controllate i quattro punti seguenti.
- JAVA_HOME non è impostato.
- La versione di JAVA non è compatibile con Tomcat.
- JRE_HOME è abilitato.
- Numeri di porta in conflitto.
Se questo non funziona, fate riferimento al seguente articolo su come avviare Tomcat.