diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc index 3e0ebbf387a..7cf034b685d 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc @@ -4,7 +4,7 @@ [[packaging.efficient.unpacking]] -== Unpacking the Executable JAR +== Unpacking the Executable jar You can run your application using the executable jar, but loading the classes from nested jars has a small startup cost. Depending on the size of the jar, running the application from an exploded structure is faster and recommended in production. @@ -12,14 +12,22 @@ Certain PaaS implementations may also choose to extract archives before they run For example, Cloud Foundry operates this way. Spring Boot supports extracting your application to a directory using different layouts. -The default layout is the most efficient, and is xref:#deployment.efficient.cds[CDS friendly]. +The default layout is the most efficient, and is xref:reference:packaging/class-data-sharing.adoc[CDS friendly]. -In this layout, the libraries are extracted to a `lib/` folder, and the application JAR +In this layout, the libraries are extracted to a `lib/` folder, and the application jar contains the application classes and a manifest which references the libraries in the `lib/` folder. +To unpack the executable jar, run this command: + [source,shell] ---- $ java -Djarmode=tools -jar my-app.jar extract +---- + +And then in production, you can run the extracted jar: + +[source,shell] +---- $ java -jar my-app/my-app.jar ----