[FEATURE] Claude Cloud Environment: Add JDK 25 Support
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
The Claude Code cloud environment ships only JDK 21 (21.0.10). JDK 25 is the current LTS release (GA September 16, 2025), and projects that target it cannot be built or tested out of the box. Maven projects with <maven.compiler.release>25</maven.compiler.release> fail with release version 25 not supported; Gradle toolchains fail because JDK 25 is not installed and the usual JDK download hosts (api.adoptium.net, download.java.net) are blocked.
The fallback is building with --release 21. That hides the problem rather than solving it: code that uses Java 25 language features cannot compile at all, and nothing is ever run on the JDK the project actually ships on. Claude's edit → build → test loop is either broken or pointed at the wrong target.
Proposed Solution
Preinstall openjdk-25-jdk alongside JDK 21 in the default image. Gradle and Maven toolchains detect installed JDKs automatically, so no other configuration is needed. Going forward, keep the most recent LTS releases installed (currently 21 and 25) so each new LTS is available soon after GA.
Alternative Solutions
Workaround that works today: Ubuntu 24.04's own repositories carry OpenJDK 25, and the default network policy allows the Ubuntu mirrors. Adding this to the environment's setup script installs it:
apt-get update && apt-get install -y openjdk-25-jdk
Caveats that make this worth fixing in the image:
apt-get updateis required; the image's package index is stale, so a plain install fails with 404s.- The
-headlesspackage leaves out the AWT libraries, so projects with Swing/AWT tests need the fullopenjdk-25-jdk. - Every user with a Java 25 project has to discover this, and every new session pays the install time.
Allowlisting api.adoptium.net and download.java.net would also let toolchain auto-provisioning work, but it adds download time to every fresh session.
Priority
Medium - Would be very helpful
Feature Category
Developer tools/SDK
Use Case Example
Shufflingway, a Java Swing card game, sets maven.compiler.release to 25. In a cloud session, mvn test failed immediately with release version 25 not supported. Claude could only verify changes by overriding the release to 21, which checked the code against the wrong JDK. After installing openjdk-25-jdk as above, the full suite (~3,700 tests, under Xvfb) ran on the project's real target.
Additional Context
- JDK 25 is an LTS release, so projects will stay on it for years; the gap will not close by itself.
- Any project targeting JDK 22–25 hits the same wall, with Gradle toolchains or Maven alike.