Tomcat startar inte: praktisk felsökning


Datum för offentliggörande:

Uppdaterad:


Tekniska artiklar > Tomcat startar inte: praktisk felsökning

2026 status och säker användning

Slutsats: Läs det första rotorsaksundantaget i Tomcat och service-manager-loggarna innan du ändrar konfigurationen. Verifiera sedan Java-kompatibilitet, portägande, filbehörigheter, XML-syntax, diskutrymme och den effektiva CATALINA_BASE.

Vad du kommer att lära dig

  • En repeterbar beställning för att kontrollera tjänstens status, loggar, miljö och anslutningar.
  • Hur man skiljer ett JVM-startfel från en Tomcat-konfiguration eller ett fel i en distribuerad applikation.
  • Varför att ta bort arbetskataloger eller öka minnet utan bevis kan dölja det verkliga problemet.

Vem är det här för: Utvecklare och administratörer som svarar på en Tomcat-process som avslutas eller aldrig öppnar sin anslutning.

2026-kontext: De ursprungliga fallen förblir användbara diagnostiska mönster, men filplatser och Java-versioner som stöds beror på den installerade Tomcat-familjen och paketeringen. Återanvänd inte äldre JVM-alternativ utan att kontrollera aktuell Java-dokumentation.

Säkerhetsanmärkning: Kommandona och konfigurationsexemplen i den ursprungliga artikeln har inte körts om i en aktuell produktionsmiljö. Verifiera versioner som stöds, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan du använder dem.

Viktiga officiella källor

Översikt.

I det här avsnittet beskrivs orsakerna till att Tomcat inte startar och hur du kan åtgärda dem. Detta är orsaken och botemedlet för fall där Tomcat inte startar av någon anledning och ett fel uppstår även om startup.bat eller startup.sh körs. Jag vill förklara detta utifrån Tomcat-versionen 9.0.27.

Innehållsförteckning

  1. Tomcat startar inte: praktisk felsökning
  2. sammanfattning

1. Tomcat startar inte: praktisk felsökning

Det finns olika orsaker till att Tomcat inte startar, men i det här avsnittet beskrivs de viktigaste händelserna som kan leda till att Tomcat inte startar.

1-1. JAVA_HOME har inte angetts.

(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

(Hur man hanterar det)

Ställ in JAVA_HOME eller JRE_HOME i "Systemegenskaper, Avancerade inställningar, Miljövariabler". Om du skriver "echo %JAVA_HOME%", "echo %JRE_HOME%" osv. i kommandotolken kommer du att få följande utdata om du ställer in det på rätt sätt. Som en försiktighetsåtgärd bör du starta om kommandotolken om du ändrar miljövariabler. Miljövariabler läses när kommandotolken startas.

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

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

(orsak)

Tomcat har en Java-version som stöds. Den finns på följande webbplats för Tomcat.

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

Tomcat-versionen "9.0.27" skulle till exempel vara "9.0.x" av "Apache Tomcat-versionen" på webbplatsen ovan, som är "8 och senare".

Detta innebär att Java 8 eller senare fungerar.

(Hur man hanterar det)

Skriv om miljövariablerna till motsvarande Java-variabler baserat på följande Tomcat-webbplats.

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

1-3. JRE_HOME är aktiverat.

(orsak)

Tomcat är giltigt för "JRE_HOME" om "JRE_HOME" och "JAVA_HOME" är inställda. Även om du tittar på "JAVA_HOME" och ser att Java är kompatibelt med Tomcat fungerar "JRE_HOME", så "JRE_HOME" måste vara Java-kompatibelt med Tomcat.

(Hur man hanterar det)

I "Systemegenskaper, Avancerade inställningar, Miljövariabler" skriver du om Java i JRE_HOME till det Java som motsvarar Tomcat.

1-4. Motstridiga portnummer.

(orsak)

Tomcat startar som standard på port 8080. Om det finns andra program som körs på port 8080 visas följande fel.

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

(Hur man hanterar det)

Ändra porten för Tomcat eller stoppa program som körs med motstridiga portnummer.

Följande kommando visar om det finns en portnummerkonflikt. Delen "8080" bör anpassas till din egen miljö. Om inga inställningar har ändrats är värdet 8080. Om inget är aktiverat returneras inget svar.

Obs: Följande kommandon är Windows-kommandon.

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 kontrollerar du följande fyra punkter.

  • JAVA_HOME har inte angetts.
  • JAVA-versionen är inte kompatibel med Tomcat.
  • JRE_HOME är aktiverat.
  • Motstridiga portnummer.

Om det inte fungerar kan du läsa följande artikel om hur Tomcat startar från början.

Så startar Apache Tomcat: startup, Bootstrap och Catalina

Tack för att du tittade på till slutet.