Tomcat sa nespustí? Praktický kontrolný zoznam riešenia problémov


Dátum vydania:

Aktualizované:


Technické články > Tomcat sa nespustí? Praktický kontrolný zoznam riešenia problémov

Stav v roku 2026 a bezpečné používanie

Záver: Pred zmenou konfigurácie nájdite v logoch Tomcatu a správcu služieb prvú výnimku, ktorá označuje koreňovú príčinu. Potom overte kompatibilitu s Javou, proces používajúci daný port, oprávnenia súborov, syntax XML, voľné miesto na disku a skutočne použitú hodnotu CATALINA_BASE.

Čo sa naučíte

  • Opakovateľné poradie kontroly stavu služby, logov, prostredia a konektorov.
  • Ako rozlíšiť zlyhanie spustenia JVM od konfigurácie Tomcat alebo zlyhania nasadenej aplikácie.
  • Prečo odstránenie pracovných adresárov alebo zvýšenie pamäte bez dôkazov môže zakryť skutočný problém.

Pre koho je to určené: Vývojári a správcovia, ktorí riešia situáciu, keď sa proces Tomcatu ukončí alebo vôbec neotvorí konektor.

Kontext v roku 2026: Pôvodné prípady zostávajú užitočnými diagnostickými vzormi, no umiestnenie súborov a podporované verzie Javy závisia od nainštalovaného radu Tomcatu a spôsobu balenia. Staré voľby JVM nepoužívajte bez kontroly aktuálnej dokumentácie Javy.

Bezpečnostná poznámka: Príkazy a príklady konfigurácie v pôvodnom článku neboli znovu spustené v aktuálnom produkčnom prostredí. Pred ich použitím overte podporované verzie, zálohy, prístupové oprávnenia a postup obnovy v oddelenom testovacom prostredí.

Hlavné oficiálne zdroje

Prehľad

Táto príručka opisuje časté príčiny, pre ktoré sa Tomcat nespustí ani po vykonaní súboru startup.bat alebo startup.sh. Historické príklady vychádzajú z Tomcatu vo verzii '9.0.27'.

Obsah

  1. Príčiny, pre ktoré sa Tomcat nespustí
  2. Zhrnutie

1. Príčiny, pre ktoré sa Tomcat nespustí

Príčin môže byť veľa. Táto časť sa zameriava na štyri časté problémy v prostredí pôvodného článku.

1-1. JAVA_HOME nie je nastavená

(Príčina)

Ak nie je nastavená premenná JAVA_HOME ani JRE_HOME, zobrazí sa nasledujúca chyba.

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

(Riešenie)

Nastavte JAVA_HOME alebo JRE_HOME v ponuke "Vlastnosti systému, Rozšírené nastavenia, Premenné prostredia". Správnu hodnotu overte na príkazovom riadku pomocou 'echo %JAVA_HOME%' alebo 'echo %JRE_HOME%'. Po zmene premenných otvorte nové okno príkazového riadka, pretože prostredie sa načítava pri jeho spustení.

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

1-2. Verzia Javy nie je kompatibilná s Tomcatom

(Príčina)

Každý rad Tomcatu podporuje iba určité verzie Javy. Požiadavky uvádza nasledujúca oficiálna stránka.

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

Tomcat "9.0.27" patrí do radu "9.0.x", pri ktorom uvedená tabuľka v čase príkladu vyžadovala Javu 8 alebo novšiu.

Vybraná verzia Javy preto musí spĺňať požiadavky konkrétneho vydania Tomcatu.

(Riešenie)

Podľa oficiálnej matice nastavte premenné prostredia na kompatibilnú inštaláciu Javy.

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

1-3. JRE_HOME má prednosť pred JAVA_HOME

(Príčina)

Ak sú nastavené premenné "JRE_HOME" aj "JAVA_HOME", spúšťací skript Tomcatu použije "JRE_HOME". Nestačí preto skontrolovať iba "JAVA_HOME"; aj hodnota "JRE_HOME" musí odkazovať na kompatibilnú Javu.

(Riešenie)

V ponuke "Vlastnosti systému, Rozšírené nastavenia, Premenné prostredia" nastavte JRE_HOME na verziu Javy kompatibilnú s Tomcatom alebo odstráňte chybnú hodnotu podľa požiadaviek svojho prostredia.

1-4. Port je obsadený iným procesom

(Príčina)

Predvolený HTTP konektor Tomcatu používa port 8080. Ak ho už používa iná aplikácia, zobrazí sa nasledujúca chyba.

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

(Riešenie)

Zmeňte port konektora Tomcatu alebo po overení zastavte proces, ktorý obsadil rovnaký port.

Nasledujúci príkaz vo Windows ukáže, či niektorý proces používa port. Hodnotu "8080" prispôsobte svojmu prostrediu; pri nezmenenej predvolenej konfigurácii ide o port 8080. Ak ho žiadny proces nepoužíva, príkaz nevráti zodpovedajúci riadok.

Poznámka: Nasledujúci príkaz je určený pre 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. Zhrnutie

Ak sa Tomcat nespustí, skontrolujte nasledujúce štyri body.

  • či je nastavená premenná JAVA_HOME alebo JRE_HOME;
  • či je verzia Javy kompatibilná s Tomcatom;
  • či JRE_HOME neprepisuje správnu hodnotu JAVA_HOME;
  • či port konektora nepoužíva iný proces.

Ak tieto kontroly príčinu neodhalia, prečítajte si logy a nasledujúci článok o procese spustenia Tomcatu.

Ako sa spúšťa Apache Tomcat: spúšťacie skripty, bootstrap a Catalina

Ďalej overte syntax konfigurácie, oprávnenia súborov, miesto na disku a chyby nasadených aplikácií.