Skip to content

[JDK 24] Provide JMODs as a separate download for deployment tool compatibility #1271

@ingokegel

Description

@ingokegel

Please provide a brief summary of the bug

The new JMOD-less builds introduced in Temurin 24 negatively impact deployment tools relying on jlink's cross-linking capabilities. This capability, as outlined by Alan Bateman in a highly voted Stack Overflow answer (+51 votes), demonstrates significant community interest:

https://stackoverflow.com/questions/47593409/create-java-runtime-image-on-one-platform-for-another-using-jlink

One prominent example is install4j which is a multi-platform installer builder. install4j allows users to select Adoptium as a JDK provider, generating customized runtime images containing only the necessary modules for the deployed application.

The install4j compiler itself is cross-platform, capable of creating installers for Windows, Linux, and macOS from any host platform. This critical functionality depends on jlink’s cross-linking capabilities.

Other widely used deployment tools and environments also leverage this functionality, including:

moditect: Maven plugin used to create custom Java runtime images across different platforms.

Badass Runtime Plugin: Popular Gradle plugin that builds platform-specific runtime images and installers using jlink.

Notably, other JDK providers such as Zulu, Corretto, and Liberica continue to offer JMOD-enabled builds in their Java 24 releases. Without official JMOD-enabled builds from Adoptium, these critical deployment scenarios will break, significantly affecting users who rely on Adoptium.

Did you test with the latest update version?

  • Yes

Please provide steps to reproduce where possible

  1. Download a 24.0 Temurin JDK for the current platform, extract it to $CURRENT
  2. Download a 24.0 Temurin JDK for another platform, extract it to $TARGET.

Expected Results

Executing $CURRENT/bin/jlink with the argument --module-path $TARGET/jmods will generate a runtime image for the target platform.

Actual Results

The jmods directory is no longer present in the Java 24 builds, so the command cannot work and cross-linking is broken.

What Java Version are you using?

jdk-24+36

What is your operating system and platform?

Any

How did you install Java?

No response

Did it work before?

Yes, it worked with 23.

Did you test with other Java versions?

Corretto, Zulu and Liberica JDKs still include JMODs in Java 24, so cross-linking continues to work with those providers.

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions