Tomcat startar inte: praktisk felsökning


Publicerad:

Uppdaterad:


Tekniska artiklar > Tomcat startar inte: praktisk felsökning

Status 2026 och säker användning

Slutsats: Läs det första felmeddelandet som visar grundorsaken i Tomcats eller tjänstehanterarens logg innan konfigurationen ändras. Kontrollera därefter Java-kompatibilitet, portkonflikter, filbehörigheter, XML-syntax, diskutrymme och aktiv CATALINA_BASE.

Det här går artikeln igenom

  • En systematisk ordning för att kontrollera tjänsten, loggarna, startmiljön och connector-portarna.
  • Hur ett JVM-startfel skiljs från fel i Tomcats konfiguration eller i en driftsatt webbapplikation.
  • Varför arbetskataloger inte bör raderas och minnet inte bör ökas utan stöd i loggarna.

Målgrupp: Utvecklare och administratörer som felsöker en Tomcat-process som avslutas direkt eller inte öppnar sin connector-port.

Läge 2026: De ursprungliga fallen är fortfarande användbara som felsökningsmönster, men filplaceringar och Java-krav beror på installerad Tomcat-serie och distributionsform. Återanvänd inte gamla JVM-alternativ utan att kontrollera den aktuella dokumentationen.

Säkerhetsinformation: Kommandona och konfigurationsexemplen i originalartikeln har inte testats på nytt i en aktuell produktionsmiljö. Kontrollera versioner med support, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan de används.

Viktiga officiella källor

Översikt

Guiden beskriver vanliga orsaker till att Tomcat inte startar trots att startup.bat eller startup.sh körs. Exemplen bygger på Tomcat 9.0.27 och visar hur varje fel kan avgränsas.

Innehållsförteckning

  1. Vanliga orsaker till att Tomcat inte startar
  2. Sammanfattning

1. Vanliga orsaker till att Tomcat inte startar

Börja med det första felet i Tomcats konsol eller logg. Följande fyra fall täcker vanliga startproblem i det historiska Windows-exemplet.

1-1. JAVA_HOME eller JRE_HOME saknas

Orsak

Om varken JAVA_HOME eller JRE_HOME har angetts visas följande fel.

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

Åtgärd

Ställ in JAVA_HOME eller JRE_HOME under "Systemegenskaper, Avancerade systeminställningar, Miljövariabler". Kontrollera värdet med "echo %JAVA_HOME%" eller "echo %JRE_HOME%" i kommandotolken. Öppna en ny kommandotolk efter ändringen, eftersom miljövariablerna läses in när den startas.

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

1-2. Java-versionen är inte kompatibel med Tomcat

Orsak

Varje Tomcat-serie har ett lägsta Java-krav. Den officiella kompatibilitetstabellen finns på följande sida.

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

Den historiska versionen 9.0.27 tillhör serien 9.0.x, som kräver Java 8 eller senare.

Åtgärd

Installera en Java-version som uppfyller kraven för den valda Tomcat-serien.

Uppdatera därefter miljövariablerna så att de pekar på rätt installation.

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

1-3. JRE_HOME åsidosätter JAVA_HOME

Orsak

Om både "JRE_HOME" och "JAVA_HOME" är inställda kan startskriptet använda Java-installationen i "JRE_HOME". Det räcker då inte att "JAVA_HOME" pekar på en kompatibel version.

Åtgärd

Uppdatera "JRE_HOME" under "Systemegenskaper, Avancerade systeminställningar, Miljövariabler" så att den pekar på en Java-version som är kompatibel med Tomcat.

1-4. Connector-porten används redan

Orsak

Tomcats HTTP-connector använder normalt port 8080. Om en annan process redan lyssnar på porten visas ett fel som det följande.

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

Åtgärd

Stoppa processen som använder porten eller konfigurera Tomcat för en annan port.

Följande Windows-kommando visar processer som använder port 8080. Byt ut "8080" om connectorn har konfigurerats för en annan port. Ingen utdata betyder att ingen matchande anslutning hittades.

Obs: Kommandot nedan är avsett för 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. Sammanfattning

Om Tomcat inte startar bör följande fyra punkter kontrolleras mot den första relevanta loggposten:

  • JAVA_HOME eller JRE_HOME saknas;
  • Java-versionen är inte kompatibel med Tomcat;
  • JRE_HOME pekar på en annan Java-installation än JAVA_HOME;
  • connector-porten används redan.

Startguiden nedan visar hur Tomcats skript leder fram till den Java-process som kan felsökas.

Så startar Apache Tomcat: startup, Bootstrap och Catalina

Felsök från den första relevanta loggposten och bekräfta varje ändring genom en kontrollerad omstart.