Java 17 is a feature release which will obsolete 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-08, EA 15
Schedule:
- 2021-06-10 Rampdown Phase One (fork from main line)
- 2021-07-15 Rampdown Phase Two
- 2021-08-05 Initial Release Candidate
- 2021-08-19 Final Release Candidate
- 2021-09-14 General Availability
Resources
- Java 17 Early-Access Builds (note: OpenJDK builds only; no Oracle builds)
- Release notes
- Jave SE 17 Platform
Selected Changes Targeted to Java 17
- 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
- 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. (Does not affect our unit tests.)
- JDK-8235139: Deprecate the socket impl factory mechanism
- JDK-8259709: Disable SHA-1 XML Signatures. XML signatures that use SHA-1 based digest or signature algorithms have been disabled by default. (Does not affect our unit tests.)
- JDK-8259801: 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: