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
Java 17 Early-Access Builds (note: OpenJDK builds only; no Oracle builds)
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 409: Sealed Classes
JEP 411: Deprecate 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
- 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)
- 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:
JEP 182 and JDK-8028563: no more support for
-source
/-target
/-release
1.6.
From Java 13:
JDK-8215608: Old Features Removed from
javadoc
tool. No more HTML4 API documentation.
From Java 14:
JEP 361: Switch Expressions (Standard)
From Java 15:
JEP 372: Remove the Nashorn JavaScript Engine
JEP 378: Text Blocks (Standard)
JEP 381: Remove the Solaris and SPARC Ports
JDK-8237219: Disable native SunEC implementation by default (OSJ-319)
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