Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Java 17 is a feature release which will obsolete obsoleted Java 16 and became a long-term support (LTS) release of Java on its introduction on 14th September 2021.

Current status: Early Access

Page last updated: 2021-04-27, EA 19

Schedule:

...

Java 17 is fully supported by Eclipse 2021-12 and later.

Current status: General Availability

Resources

Selected Changes

...

in Java 17

  • JEP 306: Restore Always-Strict Floating-Point Semantic

  • JEP 356: Enhanced Pseudo-Random Number Generators

  • JEP 382: New macOS Rendering Pipeline

  • JEP 391: macOS/AArch64 Port

  • JEP 398: Deprecate the Applet API for Removal

  • JEP 403: Strongly Encapsulate JDK Internals

  • JEP 406: Pattern Matching for switch (Preview)

  • JEP 407: Remove RMI Activation

  • JEP 409Sealed Classes

  • JEP 411Deprecate the Security Manager for Removal

  • JEP 412: Foreign Function & Memory API (Incubator)

  • JEP 414: Vector API (Second Incubator)

  • JEP 415: Context-Specific Deserialization Filters

  • JDK-6323374: Collections.unmodifiable* methods are idempotent for their corresponding collection. The unmodifiable* methods in java.util.Collections will no longer re-wrap a given collection with an unmodifiable view if that collection has already been wrapped by same method. (our unit tests still pass)

  • JDK-8235139: Deprecate the socket impl factory mechanism

  • JDK-8259709:

     Disable

     Disable SHA-1 XML Signatures. XML signatures that use SHA-1 based digest or signature algorithms have been disabled by default. (our unit tests still pass)

  • JDK-8259801:

     Enable

     Enable XML Signature secure validation mode by default

Proposed to Target Java 17

Significant Changes from Java 11 (18.9 LTS)

The following changes may factor in to our adoption of Java 17 as a new platform, and as a baseline for individual products:

From Java 12:

From Java 13:

  • JDK-8215608: Old Features Removed from javadoc  tool. No more HTML4 API documentation.

From Java 14:

  • JEP 361Switch Expressions (Standard)

From Java 15:

From Java 16:

  • JEP 394: Pattern Matching for instanceof

  • JEP 395: Records

  • JEP 396: Strongly Encapsulate JDK Internals by Default

From Java 17:

  • JEP 356: Enhanced Pseudo-Random Number Generators

  • JEP 391: macOS/AArch64 Port (not clear if this will be back-ported to, e.g., Java 11 or not)

  • JEP 403: Strongly Encapsulate JDK Internals

  • JEP 409: Sealed Classes

  • JEP 411: Deprecate the Security Manager for Removal

  • JDK-8259709: Disable SHA-1 XML Signatures

  • JDK-8259801: Enable XML Signature secure validation mode by default