Tomcat starter ikke: praktisk fejlfinding


Udgivet:

Opdateret:


Artikler › Tomcat starter ikke: praktisk fejlfinding

Status i 2026 og sikker brug

Konklusion: Læs den første rodårsag-undtagelse i Tomcat og service-manager logfiler, før du ændrer konfigurationen. Bekræft derefter Java-kompatibilitet, portejerskab, filtilladelser, XML-syntaks, diskplads og den effektive CATALINA_BASE.

Det lærer du

  • En gentagelig ordre til kontrol af tjenestestatus, logfiler, miljø og forbindelser.
  • Sådan skelnes en JVM-lanceringsfejl fra en Tomcat-konfiguration eller en implementeret applikationsfejl.
  • Hvorfor sletning af arbejdsmapper eller øget hukommelse uden bevis kan skjule det virkelige problem.

Målgruppe: Udviklere og administratorer, der reagerer på en Tomcat-proces, der afslutter eller aldrig åbner sin forbindelse.

Aktuel status i 2026: De originale tilfælde forbliver nyttige diagnostiske mønstre, men filplaceringer og understøttede Java-versioner afhænger af den installerede Tomcat-familie og emballage. Genbrug ikke ældre JVM-indstillinger uden at tjekke den aktuelle Java-dokumentation.

Sikkerhedsbemærkning: Kommandoerne og konfigurationseksemplerne i den oprindelige artikel er ikke kørt igen i et aktuelt produktionsmiljø. Kontrollér understøttede versioner, tag backup, og forbered en rollback i et separat testmiljø før ændringerne anvendes.

Officielle kilder

Oversigt

I dette afsnit beskrives årsagerne til, at Tomcat ikke starter, og hvordan du håndterer dem. Dette er årsagen og løsningen i tilfælde, hvor Tomcat ikke starter af en eller anden grund, og der opstår en fejl, selv om startup.bat eller startup.sh udføres. Nedenfor forklares dette på baggrund af Tomcat-versionen "9.0.27".

Indholdsfortegnelse

  1. Tomcat starter ikke: praktisk fejlfinding
  2. Opsummering

1. Tomcat starter ikke: praktisk fejlfinding

Der er forskellige årsager til, at Tomcat ikke kan starte, men i dette afsnit beskrives de vigtigste hændelser, der kan medføre, at Tomcat ikke kan starte.

1-1. JAVA_HOME er ikke angivet.

[årsag]

Hvis hverken JAVA_HOME eller JRE_HOME er angivet, vises følgende fejl.

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

[Hvordan man håndterer det]

Indstil JAVA_HOME eller JRE_HOME fra "Systemegenskaber, Avancerede indstillinger, Miljøvariabler". Hvis du skriver "echo %JAVA_HOME%", "echo %JRE_HOME%" osv. på kommandoprompten, vil du få følgende output, hvis du er korrekt konfigureret. Som en sikkerhedsforanstaltning skal du genstarte kommandoprompten, hvis du ændrer miljøvariabler. Miljøvariabler læses, når kommandoprompten startes.

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

1-2. JAVA-versionen er ikke kompatibel med Tomcat.

[årsag]

Tomcat har en understøttet Java-version. Den kan findes på følgende websted for Tomcat.

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

For eksempel vil Tomcat-versionen "9.0.27" være "9.0.x" af "Apache Tomcat-versionen" på ovenstående websted, som er "8 og nyere".

Det betyder, at indstillingen af Java 8 eller nyere vil fungere.

[Hvordan man håndterer det]

Omskriv miljøvariablerne til de tilsvarende Java-variabler baseret på følgende Tomcat-websted.

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

1-3. JRE_HOME er aktiveret.

[årsag]

Tomcat er gyldig for "JRE_HOME", hvis "JRE_HOME" og "JAVA_HOME" er angivet. Selv hvis du kigger på "JAVA_HOME" og ser, at Java er kompatibelt med Tomcat, vil "JRE_HOME" fungere, så "JRE_HOME" skal være Java-kompatibelt med Tomcat.

[Hvordan man håndterer det]

I "Systemegenskaber, Avancerede indstillinger, Miljøvariabler" skal du omskrive Java i JRE_HOME til den Java-adresse, der svarer til Tomcat.

1-4. Modstridende portnumre.

[årsag]

Tomcat starter som standard på port 8080. Hvis der er andre programmer, der kører på port 8080, vises følgende fejl.

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

[Hvordan man håndterer det]

Ændre porten for Tomcat eller stoppe programmer med modstridende portnumre, der kører.

Følgende kommando fortæller dig, om der er en portnummerkonflikt. "8080"-delen skal tilpasses til dit eget miljø. Hvis ingen indstillinger er blevet ændret, er værdien 8080. Hvis der ikke er aktiveret noget, returneres der ikke noget svar.

Bemærk:Følgende kommandoer er 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. resumé

Hvis Tomcat ikke starter, skal du kontrollere følgende fire punkter.

  • JAVA_HOME er ikke angivet.
  • JAVA-versionen er ikke kompatibel med Tomcat.
  • JRE_HOME er aktiveret.
  • Modstridende portnumre.

Hvis det ikke virker, kan du læse følgende artikel om, hvordan Tomcat starter op i første omgang.

Sådan starter Apache Tomcat: startup, Bootstrap og Catalina

Det opsummerer de vigtigste trin og begrænsninger.