Migration guide
Moving to Eliya from another OpenJDK distribution is a runtime swap. Eliya is built from upstream OpenJDK source with no API changes, so existing applications run without modification.
Behavioural parity
| Aspect | Standard OpenJDK behaviour | Eliya behaviour |
|---|---|---|
| Java APIs | OpenJDK 25 semantics | Identical (built from same source) |
| Default GC | G1GC, 200 ms pause target | Identical — unless -XX:+UseEliyaDefaults is set |
| TLS defaults | Upstream java.security |
Hardened — SSLv3, TLS 1.0, TLS 1.1 disabled; weak ciphers blocked |
| Custom flags | — | -XX:+UseEliyaDefaults (off by default) |
The one place you may need to act is TLS:
if your application relies on legacy protocols (TLS 1.0/1.1) or weak ciphers, it will fail to
negotiate. This is intentional — those protocols are broken. If legacy interoperability is truly
required, use
-Djava.security.properties==<path-to-vanilla-java.security>
(double equals overrides rather than appends).
Side-by-side with SDKman
SDKman lets you install Eliya alongside your current JDK and switch per shell. Safest path — your existing runtime stays default until you explicitly change it.
sdk install java 25.0.2-eliya
Copy
sdk use java 25.0.2-eliya
Copy
sdk default java 25.0.2-eliya
Copy
sdk use is per-shell. sdk default is permanent.
System-wide on Linux (update-alternatives)
For machine-wide default replacement
after installing the tar.gz archive to /opt/eliya:
sudo update-alternatives --install /usr/bin/java java /opt/eliya/bin/java 2500
Copy
sudo update-alternatives --config java
Copy
When .deb and .rpm packages ship in 2026, they register these
alternatives automatically.
Enable Eliya telecom defaults (optional)
After switching runtimes your application will run unchanged. To opt into Eliya's telecom-optimised GC and compilation profile, add the single flag:
-XX:+UseEliyaDefaults
Copy
Details on what this flag activates: flags reference.
Vendor-specific notes
From Corretto
Behavioural parity is high — Corretto is also built from upstream OpenJDK. Corretto ships the Corretto Crypto Provider; if your application explicitly requires it, continue using Corretto. Eliya does not bundle a custom crypto provider.
From Temurin / Adoptium
Direct swap. Both are vanilla OpenJDK builds. Eliya adds telecom-tuned defaults that Temurin intentionally does not.
From Azul Zulu
Direct swap for Zulu Community. Azul Platform Prime uses a different JVM (Falcon JIT, C4 GC) — swapping to Eliya reverts to standard HotSpot behaviour. Benchmark before committing.
From Oracle JDK
The primary motivation is usually licensing. Oracle JDK under the "No-Fee Terms and Conditions" licence has restrictions Eliya does not. Oracle's Flight Recorder is the same code as the OpenJDK version shipped in Eliya.
From Liberica / BellSoft
Direct swap for Liberica Standard JDK. Liberica Full JDK bundles JavaFX — Eliya does not. If your application uses JavaFX, either stay on Liberica Full or add OpenJFX as an explicit dependency.