- 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
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
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:
- Java JDK 20 download for Windows 10 64-bit
- Install JDK on Windows
- Set Java path in system environment variables
- 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.
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.
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.
Now you can see the installation of JDK 20.0.1 (64-bit) is in progress.
Once the installation process has been completed, click on the Close button to finish the installation.
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,
Now click on the Environment Variables button as follow, to open the Environment variable dialog.
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.
In the below dialog follow the sequence number to fill details,
After that, you should update the Path
variable as shown in the sequence number in the below image,
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.
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.
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
JDK (так же известен как Java Development Kit и Java SE) — один из ключевых пакетов инструментов для разработки программного обеспечения на платформе Java, включающий в себя виртуальную машину, исполнительную систему Java Runtime Environment, библиотеки классов, документацию, а так же компилятор javac.
Начинающие разработчики часто путают между собой пакеты JVM, JRE и JDK, да и в принципе слабо представляют, чем они различаются, поэтому внесём немного ясности в этот вопрос:
- JVM (Java Virtual Machine) — это виртуальная машина Java, исполняющая байт-код, который создаётся из исходных текстов компилятором javac.
- JRE (Java Runtime Environment) — минимальная среда выполнения, в которую входит JVM и библиотеки Java-классов. Именно этот пакет обязательно нужно устанавливать на компьютер с «чистой» операционной системой Windows, чтобы корректно выполнялись приложения написанные на Java.
- JDK (Java Development Kit) — бесплатный пакет для разработчиков, состоящий из JRE и средств разработчика, в которые входят компилятор javac, различные утилиты, документация и примеры. Так же сами пакеты JDK бывают нескольких различных модификаций:
- Java SE Development Kit — стандартный комплект (Standard Edition) для разработки приложений для настольных компьютеров и серверов;
- Java ЕЕ Development Kit — комплект Enterprise Edition, с дополнительными инструментами для разработки корпоративных приложений;
- Java ME Development Kit — компактная версия платформы (Micro Edition), в основном предназначенная для разработки приложений для встраиваемых и мобильных устройств.
Являясь новичком в программировании, используйте Java SE Development Kit, который подходит для большинства целей, при необходимости можно в любой момент переключиться на более подходящий пакет. При этом нужно понимать, что в Java Development Kit не входит непосредственно редактор кода и для написания программ нужно использовать стороннюю интегрированную среду разработки, например, вполне подойдут бесплатные Eclipse, Brackets или NetBeans IDE.
В данный момент для скачивания доступны Java SE Development Kit 8, 11 и 13, однако учитывая полную обратную совместимость, лучше всего использовать самую последнюю версию или версию с пометкой LTS, которая имеет наиболее длительный период поддержки. Кроме того, последняя версия JDK содержит в себе наиболее актуальный функционал, который невозможно использовать в предыдущих версиях пакета.
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
- 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:
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:
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:
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.