Tomcat se ne zažene? praktičen kontrolni seznam za odpravljanje težav


Datum objave:

Osveženo:


Tehnični članki > Tomcat se ne zažene? praktičen kontrolni seznam za odpravljanje težav

Status in varna uporaba 2026

Sklep: Preberite prvi root-rok izjemo v Tomcat in servis-manager dnevniki pred spremembo konfiguracije. Nato preverite Java združljivost, lastništvo vrat, dovoljenja datotek, XML sintaksa, prostor na disku, in učinkovito CATALINA_BASE.

Kaj se boš naučil?

  • Ponovljivo naročilo za preverjanje statusa storitev, dnevnikov, okolja in priključkov.
  • Kako razlikovati napake pri zagonu JVM od Tomcatove konfiguracije ali napake pri uporabi.
  • Zakaj brisanje delovnih imenikov ali povečevanje spomina brez dokazov lahko skrije pravi problem.

Za koga je to? Razvijalci in administratorji se odzivajo na proces Tomcat, ki izstopi ali nikoli ne odpre svojega konektorja.

Kontekst za leto 2026: Prvotni primeri ostajajo uporabni diagnostični vzorci, vendar so lokacije datotek in podprte različice Jave odvisne od nameščene družine Tomcat in embalaže. Ne ponovno uporabite obstoječih možnosti JVM brez preverjanja trenutne dokumentacije Java.

Varnostna opomba: Ukazi in konfiguracijski primeri v prvotnem članku niso bili ponovno predvajani v trenutnem proizvodnem okolju. Pred uporabo preveri podprte različice, varnostne kopije, nadzor dostopa in povratne korake v ločenem preskusnem okolju.

Glavni uradni viri

Pregled.

V tem razdelku so opisani vzroki, zaradi katerih se Tomcat ne zažene, in kako jih odpraviti. To je vzrok in zdravilo za primere, ko se Tomcat iz nekega razloga ne zažene in se pojavi napaka, tudi če se program startup.bat ali startup.sh izvede. To bi rad pojasnil na podlagi različice Tomcat '9.0.27'.

Kazalo vsebine

  1. Vzroki za to, da se Tomcat ne začne
  2. povzetek

1. Vzroki za to, da se Tomcat ne začne

Vzroki za to, da se Tomcat ne zažene, so različni, vendar so v tem razdelku opisani glavni dogodki, ki lahko povzročijo, da se Tomcat ne zažene.

1-1. JAVA_HOME ni nastavljen.

(vzrok)

Če nista nastavljena niti JAVA_HOME niti JRE_HOME, se izpiše naslednja napaka.

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

(Kako se z njo spopasti)

Nastavite JAVA_HOME ali JRE_HOME v "Sistemske lastnosti, Dodatne nastavitve, Spremenljivke okolja". Če je nastavitev pravilna, bo vnos 'echo %JAVA_HOME%', 'echo %JRE_HOME%' itd. v ukazno vrstico prinesel naslednji rezultat. Če spremenite okoljske spremenljivke, previdnostno znova zaženite ukazni poziv. Spremenljivke okolja se preberejo ob zagonu ukazne vrstice.

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

1-2. Različica JAVA ni združljiva s programom Tomcat.

(vzrok)

Tomcat ima podprto različico Java. Na voljo je na naslednjem spletnem mestu Tomcat.

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

Na primer, različica Tomcat "9.0.27" bi bila "9.0.x" različice "Različica Apache Tomcat" na zgornjem spletnem mestu, ki je "8 in novejša".

To pomeni, da bo delovala nastavitev Java 8 ali novejša.

(Kako se z njo spopasti)

Spremenljivke okolja prepišite v ustrezne spremenljivke Java na podlagi naslednjega spletnega mesta Tomcat.

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

1-3. JRE_HOME je omogočen.

(vzrok)

Tomcat velja za "JRE_HOME", če sta nastavljena "JRE_HOME" in "JAVA_HOME". Tudi če pogledate "JAVA_HOME" in vidite, da je Java združljiva s Tomcatom, bo "JRE_HOME" deloval, zato mora biti "JRE_HOME" Java združljiv s Tomcatom.

(Kako se z njo spopasti)

V "Lastnosti sistema, Dodatne nastavitve, Spremenljivke okolja" prepišite Javo v JRE_HOME v Javo, ki ustreza Tomcatu.

1-4. Nasprotujoče si številke vrat.

(vzrok)

Tomcat se privzeto zažene na vratih 8080. Če na vratih 8080 tečejo druge aplikacije, se izpiše naslednja napaka.

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

(Kako se z njo spopasti)

Spremenite vrata Tomcata ali zaustavite aplikacije z nasprotnimi številkami vrat, ki se izvajajo.

Naslednji ukaz vam bo pokazal, ali obstaja navzkrižje med številkami vrat. Del "8080" prilagodite svojemu okolju. Če nastavitve niso bile spremenjene, je vrednost 8080. Če ni aktivirano nič, se ne vrne noben odgovor.

Opomba: Naslednji ukazi so 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. povzetek

Če se Tomcat ne zažene, preverite naslednje štiri točke.

  • JAVA_HOME ni nastavljen.
  • Različica JAVA ni združljiva s programom Tomcat.
  • JRE_HOME je omogočen.
  • Nasprotujoče si številke vrat.

Če to ne deluje, si oglejte naslednji članek o tem, kako se Tomcat sploh zažene.

Kako se aktivira Tomcat?

Upamo, da je bila razlaga koristna.