Så startar Apache Tomcat: startup, Bootstrap och Catalina
Datum för offentliggörande:
Uppdaterad:
Tekniska artiklar > Så startar Apache Tomcat: startup, Bootstrap och Catalina
2026 status och säker användning
Slutsats: startup.sh eller startup.bat delegerar till catalina, som sammanställer miljövariabler, klasssökvägar, JVM-alternativ och systemegenskaper innan Tomcats Bootstrap-klass startas. En servicehanterare kan anropa samma körtid genom ett annat omslag.
Vad du kommer att lära dig
- Hur
CATALINA_HOME,CATALINA_BASE,JAVA_HOMEochJRE_HOMEpåverkar start. - Hur skal- eller batch-argument blir ett Java-kommando och sedan en Catalina-livscykeloperation.
- Var man ska inspektera det sista kommandot utan att kopiera föråldrade JVM-flaggor.
Vem är det här för: Operatörer som felsöker startomslag och utvecklare som lär sig Tomcats interna funktioner.
2026-kontext: Kommandospårningen nedan är från Tomcat 9.0.27 på Java 11. Använd den för att förstå flödet och inspektera sedan skripten som levereras med din Tomcat-version som stöds; interna flaggor och kompatibla Java-versioner ändras.
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.
Jag vill förklara hur Tomcat startar. Du startar normalt Tomcat från en batchfil eller en skalfil, men vi vill se vad batchfilen eller skalfilen faktiskt gör. Den version av Tomcat som ska kontrolleras är "9.0.27".
Hur du laddar ner versionen "9.0.27" av Tomcat förklaras också nedan, så du kan hänvisa till den om du behöver den.
Innehållsförteckning
1. Hur Tomcat startar.
Tomcat startas med följande Java-kommandon. (Antagandet är att Tomcat-versionen är 9.0.27 och Java-versionen är OpenJDK11.)
"C:\Program Files (x86)\Java\jdk-11\bin\java.exe" -Djava.util.logging.config.file="C:\apache-tomcat-9.0.27\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs="" -classpath "C:\apache-tomcat-9.0.27\bin\bootstrap.jar;C:\apache-tomcat-9.0.27\bin\tomcat-juli.jar" -Dcatalina.base="C:\apache-tomcat-9.0.27" -Dcatalina.home="C:\apache-tomcat-9.0.27" -Djava.io.tmpdir="C:\apache-tomcat-9.0.27\temp" org.apache.catalina.startup.Bootstrap start
Tomcat startas slutligen genom att utföra ovanstående Java-kommando på en rad och anropa huvudklassen (public static void main(String[] args))).
Obs: Om du inte vet vad "-D~"-delen gör, se följande.
Vad är D-alternativet (-D) som anges vid Java-start?
Till slut utförs en enda kommandorad, men du vill kontrollera vad startup.bat gör.
1-1. Innehållet i startup.bat
Startup.bat kontrollerar helt enkelt miljöinställningarna för att starta Tomcat och sedan körs catalina.bat med argumentet start. Den faktiska huvudbehandlingen beskrivs i catalina.bat.
Det som görs i catalina.bat är alltså sammansättningen av det slutliga kommandot som ska exekveras, som beskrivits tidigare. Kommandona sätts samman genom att leta efter följande
- Java-katalog som ska aktiveras
- Java classpath, huvudklass.
- Java-alternativ, till exempel systemegenskaper och minnesinställningar
Efter att ha sökt efter ovanstående är slutresultatet ett Java-kommando på en rad.
2. sammanfattning
Tomcat startas från en batch-fil som startup.bat, men i slutändan startas Tomcat av ett Java-kommando på en enda rad. Detta kommando anropar huvudklassen (public static void main(String[] args))) och startar processen.
För övrigt finns huvudklassen för Tomcat i "org.apache.catalina.startup.Bootstrap".
Tack för att du tittade på till slutet.