JLink packaging
experimentalThe jlink extension produces a custom Java runtime image for a Quarkus application.
The image contains only the JDK modules and application modules that are needed to run the application, resulting in a smaller, faster, and more self-contained distribution.
This extension depends on the Quarkus modularity extension to compute the application’s module graph.
|
This technology is considered experimental. In experimental mode, early feedback is requested to mature the idea. There is no guarantee of stability nor long term presence in the platform until the solution matures. Feedback is welcome on our mailing list or as issues in our GitHub issue tracker. For a full list of possible statuses, check our FAQ entry. |
Requisitos previos
The jlink extension requires Java 25 or later.
Earlier JDK versions have compatibility issues with the jlink tool that prevent reliable image generation.
Uso
Add the quarkus-jlink extension to your project.
When the extension is present, a jlink image is produced automatically as part of the normal Quarkus build.
JAR packaging is disabled when jlink is active.
quarkus extension add quarkus-jlink
./mvnw quarkus:add-extension -Dextensions='quarkus-jlink'
./gradlew addExtension --extensions='quarkus-jlink'
After adding the extension, build the project normally:
quarkus build
./mvnw install
./gradlew build
The jlink image is written to the output directory (by default, target/jlink-output/image).
Running the image
To run the application, execute the launcher script in the image’s bin directory:
./target/jlink-output/image/bin/<launcher-name>
The launcher name currently defaults to my-app.
A future release will derive the default from quarkus.package.output-name.
Image layout
The output directory has the standard jlink image structure.
The bin/ directory contains the launcher script.
The lib/ directory contains the JDK runtime modules.
Application modules that are not on the boot module path are placed in lib/quarkus/ and are loaded dynamically on demand after startup by smallrye-modules.
See the modularity guide for an explanation of boot modules and dynamic modules.
Referencia de configuración
Propiedad de configuración fijada en tiempo de compilación - Todas las demás propiedades de configuración son anulables en tiempo de ejecución
Configuration property |
Tipo |
Por defecto |
|---|---|---|
Whether Environment variable: Show more |
boolean |
|
The minimum heap size to configure for the image. If not given, no minimum heap size is specified. Environment variable: Show more |
||
The maximum heap size to configure for the image. If not given, no maximum heap size is specified. Environment variable: Show more |
||
The image output path. If relative, it will be resolved in terms of the packaging output path. Environment variable: Show more |
path |
|
The name of the launcher script generated in the image’s Environment variable: Show more |
string |
|
The base output directory for the Environment variable: Show more |
path |
|
The path of the staging directory used during the Environment variable: Show more |
path |
|
|
About the MemorySize format
A size configuration option recognizes strings in this format (shown as a regular expression): If no suffix is given, assume bytes. |