Java 11

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

Java 11 Features 

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 

Additional Java 11 Features 

FeatureReferenceDescription
TLS 1.3JEP 332RFC 8446 support. Reduced handshake, modern cipher suites only.
Nest-Based Access ControlJEP 181JVM understands nested types belong to the same nest. Eliminates synthetic accessor methods.
Epsilon GCJEP 318No-op garbage collector for performance testing.
ZGCJEP 333Scalable low-latency garbage collector (experimental).
Unicode 10JEP 327Unicode 10.0 character data support.
Nashorn DeprecatedJEP 335JavaScript engine deprecated. Removed in Java 15.
New String MethodsJDK-8146339isBlank(), lines(), repeat(int), strip(), stripLeading(), stripTrailing(). strip() is Unicode-aware unlike trim().
New File MethodsJDK-8174953Files.readString(Path), Files.writeString(Path, CharSequence).

Java 11 Removals 

Java 11 removed Java EE modules and CORBA from the JDK. This is the most common migration issue when upgrading from Java 8. 

RemovedReplacement
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.annotationjakarta.annotation:jakarta.annotation-api
java.transaction (JTA)jakarta.transaction:jakarta.transaction-api
java.corba (CORBA)No direct replacement. Third-party ORB implementations.
JavaFXStandalone OpenJFX module.
Pack200 toolsDeprecated in Java 11, removed in Java 14.

Maven artifacts use the jakarta. namespace (Jakarta EE 8+). 

Java 11 Download and Installation 

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” 

How Azul Supports Java 11 

  • Full, Extended, and Lifetime Support phases with quarterly security patches aligned to Oracle CPU schedule 
  • Multi-platform binaries: Intel x64, ARM64, POWER, s390x 
  • Docker and Kubernetes images: Container-ready Java 11 runtimes 
  • Migration tooling: Assessment tools and professional services for upgrading to Java 17, 21, or 25 
  • FIPS 140-2 compliant builds: For regulated industries 
Platform Core wide 1x

Contact Us

Contact to learn more about our migration services, support, modernization, and more!