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

Java Development Kit (64-bit)

Java JDK 16.0.1 (64-bit)

  -  150.56 MB  -  Freeware
  • Latest Version

    Java JDK 23.0.1 (64-bit)

  • Operating System

    Windows Vista64 / Windows 7 64 / Windows 8 64 / Windows 10 64

  • User Rating

    Click to vote
  • Author / Product

    Oracle / External Link

  • Filename

    jdk-16.0.1_windows-x64_bin.exe

  • MD5 Checksum

    426f29b80fd70bc330e38ca7f1c6c2cb

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.0.1 (64-bit).


For those interested in downloading the most recent release of Java Development Kit (64-bit) 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.0.1 (64-bit) Screenshots

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

    Java JDK 16.0.1 (64-bit) Screenshot 1
  • Java JDK 16.0.1 (64-bit) Screenshot 2
  • Java JDK 16.0.1 (64-bit) Screenshot 3
  • Java JDK 16.0.1 (64-bit) Screenshot 4
  • Java JDK 16.0.1 (64-bit) Screenshot 5

What's new in this version:

- Volgograd switches to Moscow time on 2020-12-27 at 02:00
- South Sudan changes from +03 to +02 on 2021-02-01 at 00:00

Core-libs/javax.naming:
- New System and Security Properties to Control Reconstruction of Remote Objects by JDK's Built-in JNDI RMI and LDAP Implementations:
- Jdk.jndi.object.factoriesFilter: This system and security property allows a serial filter to be specified that controls the set of object factory classes permitted to instantiate objects from object references returned by naming/directory systems. The factory class named by the reference instance is matched against this filter during remote reference reconstruction. The filter property supports pattern-based filter syntax with the format specified by JEP 290. This property applies both to the JNDI/RMI and the JNDI/LDAP built-in provider implementations. The default value allows any object factory class specified in the reference to recreate the referenced object.
- Com.sun.jndi.ldap.object.trustSerialData: This system property allows control of the deserialization of java objects from the javaSerializedData LDAP attribute. To prevent deserialization of java objects from the attribute, the system property can be set to false value. By default, deserialization of java objects from the javaSerializedData attribute is allowed.

Security-libs/java.security:
Added 2 HARICA Root CA Certificates - The following root certificates have been added to the cacerts truststore:
HARICA:
- Haricarootca2015 - DN: CN=Hellenic Academic and Research Institutions RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR
- Haricaeccrootca2015 - DN: CN=Hellenic Academic and Research Institutions ECC RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR

Core-libs/java.lang:
Less Ambiguous Processing of ProcessBuilder Quotes on Windows:
- In the java.lang.ProcessBuilder implementation on Windows, the system property jdk.lang.process.allowAmbiguousCommands=false ensures, for each argument, that double-quotes are properly encoded in the command string passed to Windows CreateProcess. An argument with a final trailing double-quote preceded by a backslash is encoded as a literal double-quote; previously, the argument including the double-quote would be joined with the next argument. An empty argument is encoded as a pair of double-quotes ("") resulting in a zero length string passed for the argument to the process; previously, it was silently ignored. An argument containing double-quotes, other than first and last, is encoded to preserve the double-quotes when passed to the process; previously, the embedded double-quotes would be dropped and not passed to the process. There is no change to existing behavior when the jdk.lang.process.allowAmbiguousCommands property is set to true: jdk.lang.process.allowAmbiguousCommands=true.

Fixed:
- Upgrade to LittleCMS 2.12
- Upgrade to FreeType 2.10.4
- Windows IME was disabled after DnD operation
- Deadlock between URLStreamHandler.getHostAddress and file.Handler.openconnection
- UTF8ZipCoder not thread-safe since JDK-8243469
- AccessDeniedException caused by delayed file deletion on Windows
- Dynalink leaks memory when generating type converters
- Jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java failed with "AssertionError: Should have GCd a method handle by now"
- C2: assert failed ("Bad derived pointer") with -XX:+VerifyRegisterAllocator
- C2: assert((constant_addr - _masm.code()->consts()->start()) == con.offset())
- AllocateUninitializedArray C2 intrinsic fails with void.class input
- Fix incorrect result of Math.abs() with char type
- Incorrect predication condition generated by ADLC
- C1: 3-arg StubAssembler::call_RT stack-use condition is incorrect
- Some fields in HaltNode is not cloned
- Code IfNode::fold_compares_helper more defensively
- Epsilon: improve performance under contention during virtual space expansion
- Epsilon: clean up unused includes
- InstanceKlass::has_as_permitted_subclass() fails if subclass was redefined
- Zero error reporting is broken after JDK-8255711
- Crash caused by lambda proxy class loaded in Shutdown hook
- UseCompressedClassPointers depends on UseCompressedOops in vmError.cpp
- Using -Xcheck:jni can lead to a double-free after JDK-8193234
- PPC64 Zero build fails with 'VMError::controlled_crash(int)::FunctionDescriptor functionDescriptor' has incomplete type and cannot be defined
- CDS: java/lang/ModuleLayer.EMPTY_LAYER should be singleton
- Cannot programmatically retrieve Metaspace max set via JAVA_TOOL_OPTIONS
- Regression introduced with JDK-8250984 - memory might be null in some machines
- Try catch Method failing to work when dividing an integer by 0
- Javax.net.ssl TLS connection always receives close_notify exception
- XML declaration is not followed by a newline