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í
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.
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í.
Technické články
Profil
Kontakt