A Java Discovery Tool to Improve Migrations
5 Reasons You Should Have Paid Commercial Support for Java
No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
Forrester reports an 129% ROI by Optimizing Java Runtime Performance.
No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
Forrester reports an 129% ROI by Optimizing Java Runtime Performance.
Java 11 (September 25, 2018) is a Long-Term Support (LTS) release and the first LTS under the six-month release cadence. It removes Java EE and CORBA modules from the JDK, standardizes the HTTP Client API, and open-sources Flight Recorder. Oracle ended free public updates on October 1, 2019.
HTTP Client (JEP 321)
Modern replacement for HttpURLConnection. Supports HTTP/1.1, HTTP/2, and WebSocket with synchronous and asynchronous modes. Standardized in java.net.http after incubating in Java 9.
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(“https://example.com”))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
Flight Recorder (JEP 328)
Low-overhead event-based profiling framework built into the JVM. Previously a commercial Oracle JDK feature. Java 11 open-sourced JFR under OpenJDK. Collects GC pauses, thread statistics, method profiling, and allocation events with sub-percent overhead.
java -XX:StartFlightRecording=duration=60s,filename=app.jfr -jar app.jar
jfr print app.jfr
Local Variable Syntax for Lambda Parameters (JEP 323)
Extends var (from Java 10) to lambda parameters, enabling type annotations without full type declarations.
BiFunction<Integer, Integer, Integer> add =
(@Nonnull var a, @Nonnull var b) -> a + b;
Single Source File Launch (JEP 330)
Run .java files directly without explicit compilation. Supports shebang for executable scripts.
java HelloWorld.java
| Feature | Reference | Description |
|---|---|---|
| TLS 1.3 | JEP 332 | RFC 8446 support. Reduced handshake, modern cipher suites only. |
| Nest-Based Access Control | JEP 181 | JVM understands nested types belong to the same nest. Eliminates synthetic accessor methods. |
| Epsilon GC | JEP 318 | No-op garbage collector for performance testing. |
| ZGC | JEP 333 | Scalable low-latency garbage collector (experimental). |
| Unicode 10 | JEP 327 | Unicode 10.0 character data support. |
| Nashorn Deprecated | JEP 335 | JavaScript engine deprecated. Removed in Java 15. |
| New String Methods | JDK-8146339 | isBlank(), lines(), repeat(int), strip(), stripLeading(), stripTrailing(). strip() is Unicode-aware unlike trim(). |
| New File Methods | JDK-8174953 | Files.readString(Path), Files.writeString(Path, CharSequence). |
Java 11 removed Java EE modules and CORBA from the JDK. This is the most common migration issue when upgrading from Java 8.
| Removed | Replacement |
| java.xml.bind (JAXB) | jakarta.xml.bind:jakarta.xml.bind-api + org.glassfish.jaxb:jaxb-runtime |
| java.xml.ws (JAX-WS) | jakarta.xml.ws:jakarta.xml.ws-api + runtime |
| java.activation (JAF) | jakarta.activation:jakarta.activation-api |
| java.xml.ws.annotation | jakarta.annotation:jakarta.annotation-api |
| java.transaction (JTA) | jakarta.transaction:jakarta.transaction-api |
| java.corba (CORBA) | No direct replacement. Third-party ORB implementations. |
| JavaFX | Standalone OpenJFX module. |
| Pack200 tools | Deprecated in Java 11, removed in Java 14. |
Maven artifacts use the jakarta. namespace (Jakarta EE 8+).
Azul provides TCK-certified OpenJDK 11 builds:
Platforms: Linux (x64, ARM64, POWER, s390x), Windows, macOS (x64, ARM64), Docker, AWS, Azure, GCP.
# Set JAVA_HOME after download
export JAVA_HOME=/path/to/zulu11
export PATH=$JAVA_HOME/bin:$PATH
java -version # openjdk version “11.0.x”
Contact to learn more about our migration services, support, modernization, and more!