The basic tool you need in order to create apps in Java

Java Development Kit for Mac

Java JDK 16

  -  166.56 MB  -  Freeware
  • Latest Version

    Java JDK 23.0.1

  • Operating System

    Mac OS X

  • User Rating

    Click to vote
  • Author / Product

    Oracle / External Link

  • Filename

    jdk-16_osx-x64_bin.dmg

  • MD5 Checksum

    3277d6c5e5d69f26dd80e70566f5ba1a

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Java JDK 16.


For those interested in downloading the most recent release of Java Development Kit for Mac or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Java JDK 16 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Java JDK 16 Screenshot 1
  • Java JDK 16 Screenshot 2
  • Java JDK 16 Screenshot 3
  • Java JDK 16 Screenshot 4
  • Java JDK 16 Screenshot 5

What's new in this version:

New Features and Enhancements:
- JEP 396: Strongly Encapsulate JDK Internals by Default
- JEP 390: Warnings for Value-based Classes
- Add InvocationHandler::invokeDefault Method for Proxy's Default Method Support
- JEP 380: Unix domain sockets
- Day Period Support Added to java.time Formats
- Add Stream.toList() Method
- JEP 338: Vector API (Incubator)
- Improved CompileCommand Flag
- JEP 376: ZGC Concurrent Stack Processing
- Concurrently Uncommit Memory in G1
- JEP 387: Elastic Metaspace
- Signed JAR Support for RSASSA-PSS and EdDSA
- SUN, SunRsaSign, and SunEC Providers Supports SHA-3 Based Signature Algorithms
- jarsigner Preserves POSIX File Permission and symlink Attributes
- Added -trustcacerts and -keystore Options to keytool -printcert and -printcrl Commands
- SunPKCS11 Provider Supports SHA-3 Related Algorithms
- Improve Certificate Chain Handling
- Improve Encoding of TLS Application-Layer Protocol Negotiation (ALPN) Values
- TLS Support for the EdDSA Signature Algorithm
- JEP 397: Sealed Classes (Second Preview)
- JEP 395: Records
- JEP 394: Pattern Matching for instanceof
- JEP 392: Packaging Tool

Removed Features and Options:
- Removal of java.awt.PeerFixer
- Removal of Experimental Features AOT and Graal JIT
- Deprecated Tracing Flags Are Obsolete and Must Be Replaced With Unified Logging Equivalents
- Removed Root Certificates with 1024-bit Keys
- Removal of Legacy Elliptic Curves

Deprecated Features and Options:
- Terminally Deprecated ThreadGroup stop, destroy, isDestroyed, setDaemon and isDaemon
- Parts of the Signal-Chaining API Are Deprecated
- Deprecated the java.security.cert APIs That Represent DNs as Principal or String Objects

Other Notes:
- Line Terminator Definition Changed in java.io.LineNumberReader
- Enhanced Support of Proxy Class
- Module::getPackages Returns the Set of Package Names in This Module
- Support Supplementary Characters in String Case Insensitive Operations
- Proxy Classes Are Not Open for Reflective Access
- The Default HttpClient Implementation Returns Cancelable Futures
- HttpPrincipal::getName Returned Incorrect Name
- HttpClient.newHttpClient and HttpClient.Builder.build Might Throw UncheckedIOException
- (fs) NullPointerException Not Thrown When First Argument to Path.of or Paths.get Is null
- Incomplete Support for Unix Domain Sockets in Windows 2019 Server
- US/Pacific-New Zone Name Removed as Part of tzdata2020b
- Argument Index of Zero or Unrepresentable by int Throws IllegalFormatException.
- GZIPOutputStream Sets the GZIP OS Header Field to the Correct Default Value
- Refine ZipOutputStream.putNextEntry() to Recalculate ZipEntry's Compressed Size
- java.util.logging.LogRecord Updated to Support Long Thread IDs
- TreeMap.computeIfAbsent Mishandles Existing Entries Whose Values Are null
- Support for CLDR Version 38
- Added Property to Control LDAP Authentication Mechanisms Allowed to Authenticate Over Clear Connections
- LDAP Channel Binding Support for Java GSS/Kerberos
- Make JVMTI Table Concurrent
- IncompatibleClassChangeError Exceptions Are Thrown For Failing 'final' Checks When Defining a Class
- Object Monitors No Longer Keep Strong References to Their Associated Object
- Added 3 SSL Corporation Root CA Certificates
- Added Entrust Root Certification Authority - G4 certificate
- Upgraded the Default PKCS12 Encryption and MAC Algorithms
- Disable TLS 1.0 and 1.1
- C-Style Array Declarations Are Not Allowed in Record Components
- Annotation Interfaces May Not Be Declared As Local Interfaces
- DocLint Support Moved to jdk.javadoc Module
- Eliminating Duplication in Simple Documentation Comments
- Viewing API Documentation on Small Devices
- API Documentation Links to Platform Documentation
- Improvements for JavaDoc Search