Download java oracle for windows

  • Click to view our Accessibility Policy
  • Skip to content

Looking for other Java downloads?

Java 21 and Java 17 available now

JDK 21 is the latest long-term support release of Java SE Platform.

  • JDK 21
  • JDK 17
  • GraalVM for JDK 21
  • GraalVM for JDK 17

JDK Development Kit 21 downloads

JDK 21 binaries are free to use in production and free to redistribute, at no cost, under the Oracle No-Fee Terms and Conditions (NFTC).

JDK 21 will receive updates under the NFTC, until September 2026, a year after the release of the next LTS. Subsequent JDK 21 updates will be licensed under the Java SE OTN License (OTN) and production use beyond the limited free grants of the OTN license will require a fee.

  • Linux
  • macOS
  • Windows

Release information

  • Online Documentation
  • Installation
    Instructions
  • Release Notes
  • Documentation License
  • JDK 21 Licensing Information User Manual (includes
    third-party licenses)
  • Certified System Configurations
  • Readme

GraalVM for JDK 21 downloads

GraalVM for JDK 21 binaries are free to use in production and free to redistribute, at no cost, under the
GraalVM Free Terms and
Conditions (GFTC).

GraalVM for JDK 21 will receive updates under the GFTC, until September 2026, a year after the release of the next LTS. Subsequent updates of GraalVM for JDK 21 will be licensed under the GraalVM OTN License Including License for Early Adopter Versions (GOTN) and production use beyond the limited free grants of the GraalVM OTN license will require a fee.

Oracle GraalVM uses the Graal just-in-time compiler and includes the Native Image feature as optional early adopter technology.

Native Image is extensively tested and supported for use in production, but is not a conformant implementation of the Java Platform. GraalVM for JDK 21 without the Native Image feature included is available for customers at My Oracle Support.

  • Linux
  • macOS
  • Windows

GraalVM for JDK 17.0.8 downloads

GraalVM for JDK 17 binaries are free to use in production and free to redistribute, at no cost, under the
GraalVM Free Terms and
Conditions (GFTC).

GraalVM for JDK 17 will receive updates under the GFTC, until September 2024. Subsequent updates of GraalVM for JDK 17 will be licensed under the GraalVM OTN License Including License for Early Adopter Versions (GOTN) and production use beyond the limited free grants of the GraalVM OTN license will require a fee.

Oracle GraalVM uses the Graal just-in-time compiler and includes the Native Image feature as optional early adopter technology.

Native Image is extensively tested and supported for use in production, but is not a conformant implementation of the Java Platform. GraalVM for JDK 17 without the Native Image feature included is available for customers at My Oracle Support.

  • Linux
  • macOS
  • Windows

Java logo

Protect your investment—and more

Java SE subscribers get support for JDK 17, receive updates until at least October 2029, are entitled to GraalVM
Enterprise, Java Management Service, and bundled patch releases (BPRs) with fixes not yet available to
nonsubscribers, and more.

Java SE subscribers have more choices

Also available for development, personal use, and to run other licensed Oracle products.

  • Java 8
  • Java 8 Enterprise Performance Pack
  • Java 11

  • Linux
  • macOS
  • Solaris
  • Windows
  • JRE 8

    • Linux
    • macOS
    • Solaris
    • Windows
  • Server JRE 8

    • Linux
    • Solaris
    • Windows

Which Java 8 package do I need?

  • Software developers: Java SE Development Kit (JDK)

    For Java developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications.

  • Running headless Linux workloads at or near your systems’ CPU or memory limits

    Enterprise Performance Pack brings significant memory and performance improvements including modern garbage collection algorithms, reduced memory usage and many other optimizations.

    Learn more

  • Administrators running applications on a server

    Server Java Runtime Environment (Server JRE). For deploying Java applications on servers. Includes tools for JVM monitoring and tools commonly required for server applications, but does not include browser integration (Java plug-in), auto-update, or an installer.

    Learn more

  • End user running Java on a desktop: Java Runtime Environment (JRE)

    Covers most end-users needs. Contains everything required to run Java applications on your system.

Release information

  • Online Documentation
  • Installation Instructions
  • Release Notes
  • Java SE Licensing Information User Manual (includes
    third-party licenses)
  • Certified System
    Configurations
  • JDK ReadMe
  • JRE ReadMe
  • Demos and Samples Archive

Java SE Development Kit 11.0.20

Java SE subscribers will receive JDK 11 updates until at least
September 2026.

These downloads can be used for development, personal use, or to run Oracle licensed products. Use for other
purposes, including production or commercial use, requires a Java SE Universal Subscription or another Oracle license.

Commercial license and support are available for a low cost with
Java SE Universal Subscription.

JDK 11 software is licensed under the
Oracle Technology Network
License Agreement for Oracle Java SE.

JDK 11.0.20 checksums

  • Linux
  • macOS
  • Solaris
  • Windows

Release information

  • Online Documentation
  • Installation instructions
  • Release Notes
  • Documentation license
  • Java SE 11 Licensing Information User Manual
    (includes 3rd party licenses)
  • Certified System
    Configurations
  • Readme

  • Linux
Details
Written by  
Last Updated on 04 May 2023   |   Print  Email

The first step to begin Java development is setup Java Development Kit (JDK). In this post, I’d like to share how to get JDK installed on Windows operating system with Oracle JDK — a commercial distribution of JDK provided by Oracle.

You know, JDK 20 is just a regular update of Java SE platform, which was released on March 21st 2023. And you can use Oracle JDK for both personal and development use.

 

1. Download Windows Installer for Oracle JDK 20

For Windows, Oracle JDK 20 is distributed in both compressed archive file (.zip) and installer (MSI and EXE), and I recommend you use EXE installer as it’s easy and convenient: the installer does update the PATH environment variable automatically.

So head over to the official download page of Oracle JDK, you should see the following page:

oracle jdk 20 download page

Click Windows tab (1) to see the available downloads for Windows operating system. Then click the download link next to x64 Installer (2). It will download the EXE installer for Oracle JDK 20 (file name: jdk-20_windows-x64_bin.exe).

Next, you should verify integrity of the downloaded file to make sure it is not tampered with during the download process. Open a new Command prompt and change the current directory to where the file is, then use the following command:

certutil -hashfile jdk-20_windows-x64_bin.exe sha256

Then compare the SHA256 checksum value printed by this command against the value published on the download page (click link 3 as shown in the above screenshot). If both values are identical, you can proceed next.

To setup Oracle JDK 20 on Windows, just double click the installer file. You will see the setup program appears as shown below:

oracle jdk 20 setup

Click Next two times to perform the setup with default installation directory at C:\Program Files\Java\jdk-20. And the setup program will update the system environment variable PATH automatically, i.e. putting the entry C:\Program Files\Common Files\Oracle\Java\javapath at the beginning of the PATH variable.

To verify, open another Command Prompt and type java -version and javac -version. You should see the following output:

verify oracle jdk 20 java version

Congratulations! You have installed Oracle JDK 20 successfully on Windows. You can now begin developing Java applications.

NOTE: If the setup program did not update the PATH environment variable, then you should update it manually — refer to this guide. You can also watch the following video to see the steps in action:

 

Learn more:

  • How to check Java version
  • Java SE versions history
  • How to set JAVA_HOME environment variable on Windows 10
  • How to set environment variables for Java using command line
  • How to write, compile and run a hello world Java program for beginners
  • What are JVM, JRE and JDK

About the Author:

Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He started programming with Java in the time of Java 1.4 and has been falling in love with Java since then. Make friend with him on Facebook and watch his Java videos you YouTube.

Add comment

In this article, you will learn how to download JDK 20 for Windows and install JDK 20 on Windows 10. In order to start developing Java applications, your system should have JDK (Java Development Kit) installed. This is the first step to begin the development of the Java application.

NOTE:
JDK is a java development kit whereas JRE is a java runtime environment that allows the java program to run. If you want to develop Java applications, install the Java Development Kit. The JDK includes the JRE, so you do not have to download both separately.

Table of Contents

Software Dependency to Install JDK 20

  • JDK 20
  • Windows 10

In this JDK installation guide, we will download JDK 20 for Windows and install it on the Windows 10 64-bit Operating System.

To install JDK 20 on Windows 10, follow the below steps:

  1. Java JDK 20 download for Windows 10 64-bit
  2. Install JDK on Windows
  3. Set Java path in system environment variables
  4. Verify the Installed Java version

Step-1. Download Java JDK 20 for Windows 10 64-bit

To download Java for Windows, visit the official website of Oracle Download JDK 20 for Windows 64-bit, go to ‘Java SE Development Kit 20.0.1‘, and click on the link https://download.oracle.com/java/20/archive/jdk-20.0.1_windows-x64_bin.exe as shown in the below image.

Note: JDK 20 binaries are free to use in production and free to redistribute, at no cost, under the Oracle No-Fee Terms and Conditions. The JDK 20 will receive updates under these terms, until September 2023 when it will be superseded by JDK 21.

Download JDK 20 for Windows

NOTE: Oracle requires an account (sign-in) to download older versions of Java that are no longer available to the public. You can download publicly available versions of Java without signing in which is the latest version only.

Step-2. Install Java JDK 20 on Windows 10

Once you have downloaded the JDK Software (jdk-20.0.1_windows-x64_bin.exe), double-click on it to see the start of installation. It will ask you permission to start, you click the Yes button. Now you will see the below dialog, in that just click on the Next button to proceed.

download jdk 20 and install on windows 10

Once you click on the Next button you will see the below image, Here you have a choice to change the Java installation directory by clicking on the change… button otherwise go with the default path (C:\Program Files\Java\jdk-20) by clicking the Next > button. I am going here with the default path only.

Download JDK 20 for Windows and Install

Now you can see the installation of JDK 20.0.1 (64-bit) is in progress.

Download JDK 20 for Windows and Install

Once the installation process has been completed, click on the Close button to finish the installation.

Download JDK 20 for Windows 10 and Install

Step-3. Set Java Path in System Environment Variables

In this step, basically, you have to set JAVA_HOME and Path in the System environment variables. To open the system environment variables dialog, you can type the ‘environment variable‘ in the Window search box and click on Edit the system environment variables as shown in the below image,

set JAVA_HOME environment variable on Windows 10

Now click on the Environment Variables button as follow, to open the Environment variable dialog.

set JAVA_HOME environment variable on Windows

In the Environment Variables dialog, click the New button to add the JAVA_HOME variable. You can set the value: C:\Program Files\Java\jdk-20 as you can take it from the installed directory as shown in the image.

JDK 20 installed directory in Windows 10

In the below dialog follow the sequence number to fill details,

JDK 20 | set JAVA_HOME environment variable on Windows 10

After that, you should update the Path variable as shown in the sequence number in the below image,

JDK 20 | set JAVA_HOME environment variable on Windows 10

Step-4. Verify the installed Java Version

In this step, we will verify the installed Java JDK version. To confirm the installation, first of all, you can open a Command Prompt. To open it, type ‘cmd‘ in the Window’s search box and click on Command Prompt as shown in the below image.

download JDK 20 for Windows and install

Once the Command Prompt is opened, type java -version and press Enter key. Now you will see the Java JDK installed version as below image.

download jdk 20 for windows and install and verify

Congratulations! Now in your Windows System, JDK 20 has been installed successfully. Now create the first Java Program Hello World!

Conclusion

In this article, you have seen how Java JDK 20 downloads for Windows and installed it. Now you can be able to do the installation of other versions of JDK also with a similar set of steps that you have seen.

Start learning Top Java Logical Programs now.

Related articles:

  • History of Java
  • How to Download JDK 17 and Install on Windows 11 [64-bit]
  • How to Download and Install JDK 11 on Windows 10?
  • How to install Maven on Windows System
  • How to install and configure Tomcat Server in Eclipse?
  • Install MySQL Server 8.0.27 [zip Archive] on Windows 10

You may also like:

  • Spring Boot Hello World Example using Spring Initializr
  • Spring Boot File Upload with Advance Progress bar in Ajax
  • How to write Excel files in Java using Apache POI?
  • Convert Excel file to CSV with Apache POI
  • Drag and drop file upload using Javascript

Oracle has released Java 8 Update 371 (JDK 8u371 and JRE 8u371) with 54 bug fixes, new features and other enhancements. If you have Java 8 installed on your system and auto-update functionality is enabled, it will automatically notify you of the latest update. Otherwise, users can download the full offline installers from the links below and install it manually, without worrying about automatic updates.

Java 8 is the longest supported version of Oracle’s Java programming language. It is a critical development platform used by millions of developers and billions of devices around the world. It is used to create applications for desktop, mobile, and web environments.

If you are running any apps or games developed in Java, you should probably keep Java updated on your computer. This will ensure maximum performance and security for your computer.

Table of Contents

Release Summary

  • Latest Java Version: Java 8 Update 371-b11
  • Release date: April 18th, 2023 (All version release dates here)
  • Next scheduled release date: July 18th, 2023
  • Expiry date: August 18th, 2023
  • Compatible OS: Windows 11, Windows 10, Windows 8 and Windows 7, MacOS, Linux, and Solaris
  • License: Free

Changes and Fixes

Java 8 Update 361 comes with the following updates:

JDK 8u371 contains IANA time zone data 2022g

IANA (Internet Assigned Numbers Authority) maintains a database of time zone information that represents the history of local time for many locations around the globe. This database is periodically updated to reflect changes by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules.

The latest version of Java 8 Update 371 includes the time zone data from 2022g of the IANA database. You can learn more about this here.

Added a Default Native GSS-API Library on Windows

JDK 8u371 adds GSS-API library support on Windows. The default native GSS-API library provides better security operations performance, and can be used for authentication, confidentiality and integrity services. It also allows users to leverage existing Windows credentials and enable Windows-based authentication services for applications that use the GSS-API.

For more information, check out JDK-6722928.

Com.apple.concurrent.Dispatch and javax.script Engine Implementation removed

The com.apple.concurrent.Dispatch API was limited in its capabilities and had a much smaller feature set than the standard java.util.concurrent APIs. That’s why com.apple.concurrent.Dispatch and javax.script engine have been removed from MacOS.

The standard APIs are more robust, offer better performance, and have better scalability, making them a better choice for developers. It is recommended developers use the standard APIs.

For more information, check out JDK-8297475

Added Certigna(Dhimyotis) Root CA Certificate

A new root certificate has been added to the `cacerts` truststore in JDK 8u371. The root certificate is a type of digital certificate that establishes a chain of trust between entities on the internet. A new root certificate has been added from Certigna, a French company also known as Dhimyotis. The root certificate of Certigna is now trusted by default in JDK 8u371.

Removed SSLv2Hello and SSLv3 from Default Enabled TLS Protocols

Two older security protocols, SSLv2Hello and SSLv3, have been removed from the default TLS (Transport Layer Security) protocols. This seems long overdue, as most Internet entities do not support these protocols due to their vulnerabilities.

This means that after updating to this version, these protocols will no longer be used by default to secure internet connections.

While enabling SSLv3 is possible through system properties or specific APIs, it is not recommended due to its lack of security compared to modern TLS protocols. It is always recommended to use newer and more secure protocols like TLSv1.3 and TLSv1.2.

You can read the complete change log in the release notes.

Download Java 8 Update 371

JRE 8u371

Click on the following links to download the respective offline installers:

Download Java 8 Update 371 for Windows (x64) – Offline [62.11 MB]

Download Java 8 Update 371 for Windows (x86) – Offline [56.43 MB]

Download Java 8 Update 371 for Windows – Online [2.16 MB]

Download Java 8 Update 371 for MacOS (Version 10.7.3 and above) [86.39 MB]

Download Java 8 Update 371 for Linux x64 (RPM) [73.64 MB]

Download Java 8 Update 371 for Linux x64 (TAR.GZ) [92.57 MB]

Download Java 8 Update 371 for Linux (RPM) [76.84 MB]

Download Java 8 Update 371 for Linux (TAR.GZ) [95.71 MB]

Download Java 8 Update 371 for Solaris x64 [50.94 MB]

Download Java 8 Update 371 for Solaris SPARC x64 [53.03 MB]

JDK 8u371

jdk-8u371-windows-x64.exe

jdk-8u371-windows-i586.exe

jdk-8u371-solaris-x64.tar.Z

jdk-8u371-solaris-x64.tar.gz

jdk-8u371-solaris-sparcv9.tar.Z

jdk-8u371-solaris-sparcv9.tar.gz

jdk-8u371-linux-x64.tar.gz

jdk-8u371-macosx-x64.dmg

jdk-8u371-linux-x64.rpm

jdk-8u371-linux-i586.rpm

jdk-8u371-linux-arm32-vfp-hflt.tar.gz

jdk-8u371-linux-aarch64.tar.gz

jdk-8u371-linux-i586.tar.gz

Portable Java 8 download options

Java 8 JDK Portable

Java 8 JRE Portable

How to Install Java 8

Using Installation Wizard

Installing the downloaded package is pretty easy. Perform the following steps to install it on a Windows PC:

  1. Run the download package Java package.

    The installation wizard will then open.

  2. Click Install.

    Install Java

    Install Java

    Java will now begin the installation. This step should only take about a minute.

  3. Once installed, click Close.

    Close wizard

    Close wizard

Using Command Prompt (Silent Installation)

Another method to install Java 8 is the Command Prompt. This method allows you to install Java silently, meaning you won’t be prompted to perform any confirmations or clicks.

  1. Begin by downloading the Java or JDK setup as suggested above.

  2. Run an elevated Command Prompt.

  3. Change the directory to where the Java/JDK setup is downloaded.

    cd /d [PathToJavaDownload]

    Change directory

    Change directory
  4. Now use the following cmdlet with the “/s” switch to run the setup in silent mode:

    jre-8u361-windows-x64 /s

    Install Java using Command Prompt in silent mode

    Install Java using Command Prompt in silent mode

    Note: Use the appropriate cmdlet by changing the setup file name according to the one you have downloaded.

How to Check Java Version

To check the currently installed Java version on your PC, you can use the “Java uninstall tool.” It lists all the installed java versions. You can also use the tool to uninstall different versions installed on your computer.

Check installed Java version

Check installed Java version using Java Uninstallation Tool

You can get the Java Uninstall Tool from this page.

Alternatively, you can also check the installed Java version from the Programs and Features applet by typing in “appwiz.cpl” in the Run Command box.

Check installed Java version using Programs and Features

Check installed Java version using Programs and Features

You can also learn other methods to uninstall Java from your PC.

JDK VS JRE

Java Runtime Environment (JRE) is a piece of software installed on your computer that allows you to run applications developed in Java on your device. It provides certain libraries and other components required to run a Java program.

JRE also includes Java Virtual Machine (JVM), which is an engine also required to run Java applications on a machine. This engine is included in the JRE package and cannot be installed separately.

The Java Development Kit (JDK) is a development kit meant for developers, for developing applications in Java. It includes both the JRE and the JVM. If you are looking to create your own Java applets, then JDK is what you need. If you have JDK already installed on your device, you do not require to install JRE separately, unless a different version is required.

This should clear up if you want to install JRE or the JDK.

Java 8 Update History

Java 8 Version Release Date Description
Java 8 Update 381 18-Jul-23 52 bug fixes, the addition of Chinese characters, JDK accepts RSA keys in PKCS#1 format.
Java 8 Update 371 18-Apr-23 54 bug fixes, older SSL versions removed, GSS-API support added.
Java 8 Update 361 17-Jan-23 372 security patches, FXML JavaScript Engine disabled by default, and other changes
Java 8 Update 351 18-Oct-22 The default PKCS12 MAC algorithm was updated.
Java 8 Update 341 19-Jul-22 TLS 1.3 enabled by default.
Java 8 Update 333 2-May-22 Windows alternate data streams enabled by default.
Java 8 Update 291 20-Apr-22 New HARICA root certificates added.
Java 8 Update History Summary

More Java Updates

Java 8 Update 371

Download Java 8 Update 371 (Offline Installers) 1

Oracle has released Java 8 Update 371 (JDK 8u371 and JRE 8u371) with 54 bug fixes, new features and other enhancements.

Price Currency:
USD

Operating System:
Windows 11, Windows 10, Windows 8, Windows 7, MacOS, Linux, Solaris

Application Category:
DeveloperApplication

Pros

  • Contains 54 bug fixes, new features and other enhancements.
  • Includes the latest IANA time zone data (2022g).
  • Adds a default native GSS-API library on Windows for better security operations performance.
  • Adds a new root certificate from Certigna (Dhimyotis) to the `cacerts` truststore.
  • Removes older and less secure SSLv2Hello and SSLv3 protocols from the default enabled TLS protocols.

Cons

  • The com.apple.concurrent.Dispatch API and javax.script engine have been removed from MacOS.
  • Users may need to update their applications to use standard java.util.concurrent APIs instead.

Java is a programming language and software platform. Examples of applications that use Java are numerous and widespread but include web browsers, office applications, and even games like Minecraft are based on Java.

The full version string for this update release is 11.0.19+9 (where «+» means «build»). The version number is 11.0.19. Complete release notes for Java 11 can be found here.

If you need to run Java applications, downloading and installing the JRE (Java Runtime Environment) is enough. If you’re developing Java applications, you’ll want to download the JDK, which also includes the JRE.

The latest version of Java is Java 20 or JDK 20 released on March, 2023. However, many versions of Java are actively maintained for compatibility purposes. Java 8, Java 11 and Java 17 are the three long-term support versions recommended by Oracle. You can download the version you need below:

  • Java SE 20 Download (latest)
  • Java SE 19 Download
  • Java SE 18 Download
  • Java SE 17 Download (LTS, recommended)
  • Java SE 16 Download
  • Java SE 15 Download
  • Java SE 11 Download (LTS, recommended)
  • Java SE 9 Download
  • Java SE 8 Download (LTS, recommended)

Java 8 is the last free software public update for commercial use, which explains why it remains popular. Oracle plans to maintain it until at least 2030. Also, you should know that some applications might refer to Java 8 as version 1.8.0.

What is Java JDK?

The Java Development Kit (JDK) is the full-featured software development kit for Java developers. It has everything the JRE has, but adds the compiler (javac) and tools (like javadoc and jdb). The JDK allows you to create and compile Java programs.

Is Java free to use?

Yes, Java is free to use under the jdk.java.net license. This means anyone can download it for personal or development use at no cost. Oracle does charge for long term support, but this is optional.

IANA Data 2020a

JDK 11.0.19 contains IANA time zone data 2021a. For more information, refer to Timezone Data Versions in the JRE Software.

Security Baselines

The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 11.0.19 are specified in the following table:

JRE Family Version = JRE Security Baseline (Full Version String)

  • 11 = 11.0.19+9
  • 8 = 8u371-b11

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update. In order to determine if a release is the latest, the Security Baseline page can be used to determine which is the latest version for each release family.

Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 11.0.13) be used after the next critical patch update scheduled for January 18, 2022.

What’s New

JDK 11.0.19 contains IANA time zone data 2022g which contains the following changes:

  • The northern edge of Chihuahua changes to US timekeeping.
  • Much of Greenland stops changing clocks after March 2023.
  • Fix some pre-1996 timestamps in northern Canada.
  • C89 is now deprecated; please use C99 or later.
  • Portability fixes for AIX, libintl, MS-Windows, musl, z/OS.
  • In C code, use more C23 features if available.
  • C23 timegm now supported by default.
  • Fixes for unlikely integer overflows.

Previous release notes

Oracle recommends that the JDK is updated with each Critical Patch Update. In order to determine if a release is the latest, the Security Baseline page can be used to determine which is the latest version for each release family.

Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 11.0.16) be used after the next critical patch update scheduled for October 18, 2022.

New Features

core-libs/java.net

â HTTPS Channel Binding Support for Java GSS/Kerberos

Support has been added for TLS channel binding tokens for Negotiate/Kerberos authentication over HTTPS through javax.net.HttpsURLConnection.

Channel binding tokens are increasingly required as an enhanced form of security which can mitigate certain kinds of socially engineered, man in the middle (MITM) attacks. They work by communicating from a client to a server the client’s understanding of the binding between connection security (as represented by a TLS server cert) and higher level authentication credentials (such as a username and password). The server can then detect if the client has been fooled by a MITM and shutdown the session/connection.

The feature is controlled through a new system property jdk.https.negotiate.cbt which is described fully on the Networking Properties page.

Other Notes

â JDK Bundle Extensions Truncated When Downloading Using Firefox 102

On oracle.com and java.com, certain JDK bundle extensions are getting truncated on download when using Firefox version 102. The downloaded bundles have no file extension like «.exe», «.rpm», «.deb». If you are not able to upgrade to Firefox ESR 102.0.1 or Firefox 103 when it is released, then as a workaround you can:

  • manually add a file extension to the file name after download.
  • use a different browser

Changes

core-libs/java.io

â Enable Windows Alternate Data Streams by default

The Windows implementation of java.io.File has been changed so that strict validity checks are not performed by default on file paths. This includes allowing colons (‘:’) in the path other than only immediately after a single drive letter. It also allows paths that represent NTFS Alternate Data Streams (ADS), such as «filename:streamname». This restores the default behavior of java.io.File to what it was prior to the April 2022 CPU in which strict validity checks were not performed by default on file paths on Windows. To re-enable strict path checking in java.io.File, the system property jdk.io.File.enableADS should be set to false (case ignored). This might be preferable, for example, if Windows special device paths such as NUL: are not used.

Bug Fixes

This release is based on the previous CPU and does not contain any additional security fixes. The following issues have also been resolved:

  • JDK-8284920 Category: xml Subcategory: javax.xml.path Summary: Incorrect Token type causes XPath expression to return incorrect results
  • JDK-8284548 Category:xml Subcategory: jaxpInvalid Summary: XPath expression causes StringIndexOutOfBoundsException

Java SE 11.0.15 Advanced — Bundled Patch Release (BPR) — Bug Fixes and Updates

The following sections summarize changes made in all Java SE 11.0.15 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.

  • JDK-8221741 Category: client-libs Subcategory: 2d Description: ClassCastException can happen when fontconfig.properties is used
  • JDK-8212904 Category: client-libs Subcategory: javax.swing Description: JTextArea line wrapping incorrect when using UI scale
  • JDK-8282583 Category: xml Subcategory: jaxp Description: Update BCEL md to include the copyright notice
  • JDK-8283350 Category: core-libs Subcategory: java.time Description: (tz) Update Timezone Data to 2022a

Previous release notes

security-libs/org.ietf.jgss:krb5

â Support cross-realm MSSFU

The support for the Kerberos MSSFU extensions [1] is now extended to cross-realm environments.

By leveraging the Kerberos cross-realm referrals enhancement introduced in the context of JDK-8215032, the ‘S4U2Self’ and ‘S4U2Proxy’ extensions may be used to impersonate user and service principals located on different realms.

security-libs/java.security

â Customizing PKCS12 keystore Generation

New system and security properties have been added to enable users to customize the generation of PKCS #12 keystores. This includes algorithms and parameters for key protection, certificate protection, and MacData. The detailed explanation and possible values for these properties can be found in the «PKCS12 KeyStore properties» section of the java.security file.

Also, support for the following SHA-2 based HmacPBE algorithms has been added to the SunJCE provider: HmacPBESHA224, HmacPBESHA256, HmacPBESHA384, HmacPBESHA512, HmacPBESHA512/224, HmacPBESHA512/256

Removed Features and Options

security-libs/java.security

â Removed Root Certificates with 1024-bit Keys

The following root certificates with weak 1024-bit RSA public keys have been removed from the cacerts keystore:

+ alias name «thawtepremiumserverca [jdk]» Distinguished Name: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA + alias name «verisignclass2g2ca [jdk]» Distinguished Name: OU=VeriSign Trust Network, OU=»(c) 1998 VeriSign, Inc. — For authorized use only», OU=Class 2 Public Primary Certification Authority — G2, O=»VeriSign, Inc.», C=US + alias name «verisignclass3ca [jdk]» Distinguished Name: OU=Class 3 Public Primary Certification Authority, O=»VeriSign, Inc.», C=US + alias name «verisignclass3g2ca [jdk]» Distinguished Name: OU=VeriSign Trust Network, OU=»(c) 1998 VeriSign, Inc. — For authorized use only», OU=Class 3 Public Primary Certification Authority — G2, O=»VeriSign, Inc.», C=US + alias name «verisigntsaca [jdk]» Distinguished Name: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA

Previous release notes

security-libs/java.security

â -groupname Option Added to keytool Key Pair Generation

A new -groupname option has been added to keytool -genkeypair so that a user can specify a named group when generating a key pair. For example, keytool -genkeypair -keyalg EC -groupname secp384r1 will generate an EC key pair by using the secp384r1 curve. Because there might be multiple curves with the same size, using the -groupname option is preferred over the -keysize option.

security-libs/javax.net.ssl

â Support for certificate_authorities Extension

The «certificate_authorities» extension is an optional extension introduced in TLS 1.3. It is used to indicate the certificate authorities (CAs) that an endpoint supports and should be used by the receiving endpoint to guide certificate selection.

With this JDK release, the «certificate_authorities» extension is supported for TLS 1.3 in both the client and the server sides. This extension is always present for client certificate selection, while it is optional for server certificate selection.

Applications can enable this extension for server certificate selection by setting the jdk.tls.client.enableCAExtension system property to true. The default value of the property is false.

Note that if the client trusts more CAs than the size limit of the extension (less than 2^16 bytes), the extension is not enabled. Also, some server implementations do not allow handshake messages to exceed 2^14 bytes. Consequently, there may be interoperability issues when jdk.tls.client.enableCAExtension is set to true and the client trusts more CAs than the server implementation limit.

core-libs/java.lang

â POSIX_SPAWN Option on Linux

As an additional way to launch processes on Linux, the jdk.lang.Process.launchMechanism property can be set to POSIX_SPAWN. This option has been available for a long time on other *nix platforms. The default launch mechanism (VFORK) on Linux is unchanged, so this additional option does not affect existing installations.

POSIX_SPAWN mitigates rare pathological cases when spawning child processes, but it has not yet been excessively tested. Prudence is advised when using POSIX_SPAWN in productive installations.

security-libs/javax.net.ssl

â Support for X25519 and X448 in TLS

The named elliptic curve groups x25519 and x448 are now available for JSSE key agreement in TLS versions 1.0 to 1.3, with x25519 being the most preferred of the default enabled named groups. The default ordered list is now:

x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192

The default list can be overridden by using the system property jdk.tls.namedGroups.

security-libs/java.security

â jarsigner Preserves POSIX File Permission and symlink Attributes

When signing a file that contains POSIX file permission or symlink attributes, jarsigner now preserves these attributes in the newly signed file but warns that these attributes are unsigned and not protected by the signature. The same warning is printed during the jarsigner -verify operation for such files.

Note that the jar tool does not read/write these attributes. This change is more visible to tools like unzip where these attributes are preserved.

client-libs/2d

â Oracle JDK11u for Solaris Now Requires harfbuzz to be Installed

Oracle JDK-11.0.10 and later for Solaris 11 requires that the OS provide the package library/desktop/harfbuzz as part of the system installation. This package is provided for Solaris 11.3 and later.

$ pkg info harfbuzz Name: library/desktop/harfbuzz Summary: HarfBuzz is an OpenType text shaping engine Description: HarfBuzz is a library for text shaping, which converts unicode text to glyph indices and positions. HarfBuzz is used directly by libraries such as Pango, and the layout engines in firefox. Category: Desktop (GNOME)/Libraries State: Installed Publisher: solaris

This is a desktop library, but the font processing it does is part of some common backend server workloads. It should always be considered as required.

If this library is missing, then the pkg mechanism will require it during installation of the JDK. If installing the JDK by using a tar.gz bundle (for example) and the library/desktop/harfbuzz package is missing, a runtime link failure will occur when this package is needed.

JDK-8251907 (not public)

core-libs/java.time

â JDK time-zone data upgraded to tzdata2020d

The JDK update incorporates tzdata2020d. The main change is

Palestine ends DST earlier than predicted, on 2020-10-24.

Please refer to https://mm.icann.org/pipermail/tz-announce/2020-October/000062.html for more information.

core-libs/java.time

â JDK time-zone data upgraded to tzdata2020c

The JDK update incorporates tzdata2020c. The main change is

Fiji starts DST later than usual, on 2020-12-20.

Please refer to https://mm.icann.org/pipermail/tz-announce/2020-October/000060.html for more information.

core-libs/java.time

â US/Pacific-New Zone Name Removed as Part of tzdata2020b

Following the JDK’s update to tzdata2020b, the long-obsolete files named pacificnew and systemv have been removed. As a result, the «US/Pacific-New» Zone name declared in the pacificnew data file is no longer available for use.

Information regarding this update can be viewed at https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html.

Bug Fixes

  • This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update. For a more complete list of the bug fixes included in this release, see the JDK 11.0.10 Bug Fixes page.

security-libs/java.security

â Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default

  • Weak named curves are disabled by default by adding them to the following disabledAlgorithms security properties: jdk.tls.disabledAlgorithms, jdk.certpath.disabledAlgorithms, and jdk.jar.disabledAlgorithms. The named curves are listed below.
  • With 47 weak named curves to be disabled, adding individual named curves to each disabledAlgorithms property would be overwhelming. To relieve this, a new security property, jdk.disabled.namedCurves, is implemented that can list the named curves common to all of the disabledAlgorithms properties. To use the new property in the disabledAlgorithms properties, precede the full property name with the keyword include. Users can still add individual named curves to disabledAlgorithms properties separate from this new property. No other properties can be included in the disabledAlgorithms properties.
  • To restore the named curves, remove the include jdk.disabled.namedCurves either from specific or from all disabledAlgorithms security properties. To restore one or more curves, remove the specific named curve(s) from the jdk.disabled.namedCurves property.
  • Curves that are disabled through jdk.disabled.namedCurves include the following: secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62 c2tnb191v2, X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62 c2tnb239v3, X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62 prime192v3, X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1
  • Curves that remain enabled are: secp256r1, secp384r1, secp521r1, X25519, X448. See JDK-8233228

security-libs/org.ietf.jgss:krb5

â Support for Kerberos Cross-Realm Referrals (RFC 6806)

  • The Kerberos client has been enhanced with the support of principal name canonicalization and cross-realm referrals, as defined by the RFC 6806 protocol extension.
  • As a result of this new feature, the Kerberos client can take advantage of more dynamic environment configurations and does not necessarily need to know (in advance) how to reach the realm of a target principal (user or service).
  • Support is enabled by default and 5 is the maximum number of referral hops allowed. To turn it off, set the sun.security.krb5.disableReferrals security or system property to false. To configure a custom maximum number of referral hops, set the sun.security.krb5.maxReferrals security or system property to any positive value.

Previous versions:

  • Java SE JDK 11.0.10 for Windows
  • Java SE JDK 11.0.10 for macOS
  • Java SE JDK 11.0.10 for Linux DEB
  • Java SE JDK 11.0.10 for Linux RPM
  • Java SE JDK 11.0.6 for Windows
  • Java SE JDK 11.0.6 for macOS
  • Java SE JDK 11.0.6 for Linux DEB
  • Java SE JDK 11.0.6 for Linux RPM
  • Java SE JDK 11.0.4 for Windows
  • Java SE JDK 11.0.4 for macOS
  • Java SE JDK 11.0.4 for Linux DEB
  • Java SE JDK 11.0.4 for Linux RPM
  • Java SE JDK 11.0.3 for Windows
  • Java SE JDK 11.0.3 for macOS
  • Java SE JDK 11.0.3 for Linux DEB
  • Java SE JDK 11.0.3 for Linux RPM

  • Download java for windows 7 x64
  • Download java for windows 10 free download
  • Download itunes for windows 10 64 bit
  • Download icloud for windows 7 64 bit
  • Download ios 7 for windows 7