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
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.
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.