Hello Farzana Mustafa,
I’ve checked the Microsoft Learn page you referenced, and at the moment the latest available build listed under OpenJDK 17 is 17.0.17 LTS, not 17.0.18. The download table shows packages for Linux, macOS, and Windows across x64 and ARM64 architectures, but the new GA release you mentioned (17.0.18, January 20, 2026) has not yet been published on the Microsoft Build of OpenJDK download portal. This means the documentation is lagging behind the upstream OpenJDK release cycle.
Microsoft’s Build of OpenJDK follows upstream GA releases but there is typically a short delay before binaries are tested, signed, and posted. The official download page is updated only after Microsoft has completed validation and published the packages. Until then, the page will continue to show 17.0.17 as the latest supported release.
If you need 17.0.18 immediately, you can obtain it directly from the upstream OpenJDK project (Adoptium or Oracle builds), but if your environment requires the Microsoft Build of OpenJDK specifically—for example, for Azure workloads or enterprise compliance—you will need to wait until Microsoft publishes the updated binaries and updates the Learn documentation.
The best practice here is to monitor the official Microsoft Build of OpenJDK GitHub repository and the Learn download page. Microsoft usually posts the updated binaries within days to weeks of the upstream GA. Once published, the links under the OpenJDK 17 section will change from 17.0.17 to 17.0.18, with updated .sha256sum.txt and .sig files for verification.
In short, the link cannot be updated yet because Microsoft has not released their signed build of 17.0.18. You should continue to check the Learn page and GitHub release feed; once Microsoft completes validation, the download links will be updated automatically.
I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!
Domic Vo.
Answer from Domic Vo on learn.microsoft.comHello Farzana Mustafa,
I’ve checked the Microsoft Learn page you referenced, and at the moment the latest available build listed under OpenJDK 17 is 17.0.17 LTS, not 17.0.18. The download table shows packages for Linux, macOS, and Windows across x64 and ARM64 architectures, but the new GA release you mentioned (17.0.18, January 20, 2026) has not yet been published on the Microsoft Build of OpenJDK download portal. This means the documentation is lagging behind the upstream OpenJDK release cycle.
Microsoft’s Build of OpenJDK follows upstream GA releases but there is typically a short delay before binaries are tested, signed, and posted. The official download page is updated only after Microsoft has completed validation and published the packages. Until then, the page will continue to show 17.0.17 as the latest supported release.
If you need 17.0.18 immediately, you can obtain it directly from the upstream OpenJDK project (Adoptium or Oracle builds), but if your environment requires the Microsoft Build of OpenJDK specifically—for example, for Azure workloads or enterprise compliance—you will need to wait until Microsoft publishes the updated binaries and updates the Learn documentation.
The best practice here is to monitor the official Microsoft Build of OpenJDK GitHub repository and the Learn download page. Microsoft usually posts the updated binaries within days to weeks of the upstream GA. Once published, the links under the OpenJDK 17 section will change from 17.0.17 to 17.0.18, with updated .sha256sum.txt and .sig files for verification.
In short, the link cannot be updated yet because Microsoft has not released their signed build of 17.0.18. You should continue to check the Learn page and GitHub release feed; once Microsoft completes validation, the download links will be updated automatically.
I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!
Domic Vo.
Currently, the latest version of OpenJDK available is 17.0.17. There is no information regarding the release of OpenJDK 17.0.18 or any updated download links for that version. You can find the available downloads for OpenJDK 17.0.17 at the provided Microsoft documentation link.
References:
- Download the Microsoft Build of OpenJDK
macOS - How to install Java 17 - Stack Overflow
Difference between JDK 17 and 21
Which free version of Java can I use for production environments and or commercial purposes? - Stack Overflow
HOW DO YOU DOWNLOAD AND USE JAVA 17?
Videos
In 2024, even if you can use just brew..
brew install openjdk@17
Java will be installed here:
/opt/homebrew/opt/openjdk@17/bin/java
for Apple Intel path is /usr/local/... rather than /opt/homebrew/...
For the system Java wrappers to find this JDK, symlink it with:
sudo ln -sfn /opt/homebrew/opt/openjdk\@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
resp. for Intel
sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
Now, running /usr/libexec/java_home -V should show the path to JAVA 17, something like:
17.0.9 (x86_64) "Homebrew" - "OpenJDK 17.0.9" /opt/homebrew/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home
(This is what you are missing btw, if javac or javac --version does not give you a command-not-found but an The operation couldn’t be completed. Unable to locate a Java Runtime.)
In case you see the wrong version, check if the path to JAVA_HOME is set correctly. If not, you could set it by:
export JAVA_HOME=\$(/usr/libexec/java_home)
...give a try to sdkman, it's far better than brew
curl -s "https://get.sdkman.io" | bash
then open a new shell and try list to see what you could install ;-)
sdk list java
At time of writing you could use:
sdk install java 17.0.4.1-tem
Java will be installed here:
/Users/YOUR_USERNAME_HERE/.sdkman/candidates/java/17.0.4.1-tem
Java doesn't mind if you install multiple versions. This is often required; java is not backwards compatible (it tries to change little, but e.g. the java8 to java9 transition broke a ton of stuff, much of it needless and much of it not reasonably expectable or fixable by libraries and apps, so a bunch of java apps and libraries only run on java8 - just an example).
So, yes, you have installed JDK17. Also, yes, if you just run java without specifying which one you want, you so happen to get java13 here.
To see all installed javas, you can run:
/usr/libexec/java_home -V
to 'override', you can use something like (depends on which shell you're using on your mac):
export JAVA_HOME=`/usr/libexec/java_home -v 17`
(the backticks mean: Run this then take the output of it and treat that as the 'value' of the expression. here, assign it to the JAVA_HOME env var. -v 17 requests a path to java 17. The -V option lists all and is meant for your eyeballs, not for scripts. The -v option is mostly for scripting, and that's how we're using it here).
JAVA_HOME decides which java is used by some things, but the java you get when you just type java is /usr/bin/java, and that executable is actually just a wrapper that picks a java to run from amongst all installed versions. It uses JAVA_HOME to decide which java to actually run. There are wrappers for all the common commands (javac, too). You can always run e.g. which javac to see what that actually runs; you probably see /usr/bin/javac. Everything in /usr/bin is one of these wrapper thingies that looks at JAVA_HOME and then runs the binary it finds there.
In the course im doing the instructor has ssaid to use jdk 17 as its an lts version but will it have a major impact if i use 21?
Update 2021-09
- For versions 8 through 16, Oracle required a fee if their own Oracle JDK product was used in production, but not for dev, test, and training usages.
- For Java 17, the Oracle JDK product is available under a new No-Fee Terms and Conditions license, discussed on the Oracle company blog.
On my first reading, it appears this new license makes production use free-of-cost (along with dev, test, and training usages), except for products sold for a fee while bundling the Oracle JDK product. But I am not an attorney, so read the terms yourself and consult legal advice as needed.
Keep in mind that many other vendors continue to provide implementations of the Java specs, as shown in the flowchart below. Some of these vendors sell support plans, either optionally or as a requirement for use of their product. Never assume, always read the detailed requirements for any distribution you obtain.
Another 2021 update: Add Microsoft to the list of vendors seen below.
Several vendors offer a choice of Java implementations
The Answer by Speakjava is correct and informative.
In addition, here is a flowchart I made to guide you in choosing a vendor for a Java implementation.

Or another way to view this: Your particular motivations or situation.

Summary
If you need to have java in your production servers for free, your have two options
#1 OpenJdk
The OpenJDK is the open source implementation of the Java SE Specification and it is maintained by Oracle.
More details: https://whichjdk.com
Source code can be found here: https://github.com/openjdk
Binary can be found here: https://jdk.java.net/archive
Just select the latest or an specific version and download it. Check this example.
#2 JDK Customized by Third Parties
- Amazon Corretto
- https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html
- Zulu
- https://www.azul.com/downloads/zulu-community/?architecture=x86-64-bit&package=jdk
Licences OTN vs BCL
Oracle JDK 8 (aka 1.8) no longer uses BCL (Binary Code License). From April 16, 2019, Oracle JDK 8 uses the OTN (Oracle Technology Network) license, which requires you to create an Oracle account to download JDK 8 and payment!!
BCL = Oracle Binary Code License
- You can use it, but you can't modify it
- You agree not to sue Oracle if anything goes wrong
- You can redistribute/publish it (so that you can sell products with Java embedded), but if you do, you agree to indemnify Oracle; so if someone sues you, you can't drag Oracle into it.
It's really just there to protect Oracle's intellectual property and to shield them from being sued when bugs are found.
source: https://www.quora.com/In-short-what-does-the-Oracle-Binary-Code-License-Agreement-for-Java-SE-actually-say-or-prohibit/answer/Jon-Harley
As a summary: FREE with risks and without any fault of Oracle
OTN = Oracle Technology Network License
As a summary: Opposite to BCL and FREE just for development in your laptop. For enterprises, you must PAY
OpenJDK and Oracle JDK
Both OpenJDK and Oracle JDK are created and maintained currently by Oracle only.
OpenJDK and Oracle JDK are implementations of the same Java specification passed the TCK (Java Technology Certification Kit).
Most of the vendors of JDK are written on top of OpenJDK by doing a few tweaks to [mostly to replace licensed proprietary parts / replace with more high-performance items that only work on specific OS] components without breaking the TCK compatibility.
Source: Differences between Oracle JDK and OpenJDK
Free official options
Here I will list and keep updated the official links, ready to download the most used java versions
Oracle Java 1.4, 5, 6 and 7 (Deprecated)
Oracle does not show any message related to license changes for Java 1.4, 5, 6 and 7 downloads. So we can use them for development and production deployment, accepting issues and security problems because these versions are so ancient!!
- Oracle downloads:
- https://www.oracle.com/java/technologies/java-archive-javase-v14-downloads.html
- https://www.oracle.com/java/technologies/java-archive-javase5-downloads.html
- https://www.oracle.com/java/technologies/javase-java-archive-javase6-downloads.html
- https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
Legacy versions prior to 7, does not have and will not have any update. Maybe a sales contact could be a solution if your have a Legacy Systems running over this java old versions.
Oracle Java 8 update 202
Just Java SE 8 JDK 8u202 and earlier versions are free for development and production deployment. You can download it from:
- https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
Openjdk 8 (Deprecated)
OpenJDK is a ORACLE initiative. More details here: https://adoptopenjdk.net/
compressed mode
You can download the latest v8 release from here. Latest version:
- https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_windows_8u292b10.zip
- https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_linux_8u292b10.tar.gz
- I can't find the version for osx :(
Follow this to download using curl
install mode
apt-get install openjdk-8-jre (just run apps)
apt-get install openjdk-8-jdk (develop and run)
From https://openjdk.java.net/install/
Openjdk 11
- https://jdk.java.net/java-se-ri/11
- https://github.com/AdoptOpenJDK/openjdk11-binaries/releases
apt-get update
apt-get install openjdk-11-jdk
Openjdk 17
- https://jdk.java.net/java-se-ri/17
Openjdk 19
- https://jdk.java.net/java-se-ri/19
Openjdk 21
- https://jdk.java.net/21/
Free From Trusted Third Parties
Zulu Community (Java 6,7,8,11,13,14,15)
- https://www.azul.com/downloads/zulu-community/?architecture=x86-64-bit&package=jdk
Amazon Corretto (Java 11)
- https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html
Eclipse OpenJ9
- https://www.eclipse.org/openj9/
More third parties
The following implementations, listed in alphabetical order, are open source and free to use:
- AdoptOpenJDK
- Azul Zulu
- Bck2Brwsr
- CACAO
- Codename One
- DoppioJVM
- GraalVM CE
- HaikuVM
- HotSpot
- Jamiga
- JamVM
- Jelatine JVM
- Jikes RVM (Jikes Research Virtual Machine)
- JVM.go
- leJOS
- Maxine
- Multi-OS Engine
- RopeVM
- uJVM
NON-FREE options
You should pay for these versions but in return you will have a lot of features suported by Oracle or another third parties
Oracle Java
https://www.oracle.com/java/technologies/downloads/
- Java 19
- https://www.oracle.com/java/technologies/downloads/#java19
- Java 17
- https://www.oracle.com/java/technologies/downloads/#java17
- Java 11
- https://www.oracle.com/java/technologies/downloads/#java11
Oracle Java 8 update 221
Since the java 8 update at April 16, 2019 8u221, all versions and updates for (java 8,9,10,11,14) has no cost just for personal use and development purposes. Any other use, needs a Commercial License.
- https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html latest update 251
- https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html previous updates (241,231,221,212,211)
Source: https://www.baeldung.com/oracle-jdk-vs-openjdk
Proprietary Implementations
There are also other private or commercial implementations:
- Azul Zing JVM
- CEE-J
- Excelsior JET (Discontinued)
- GraalVM EE
- Imsys AB
- JamaicaVM (aicas)
- JBlend (Aplix)
- MicroJvm (IS2T – Industrial Smart Software Technology)
- OJVM
- PTC Perc
- SAP JVM
- Waratek CloudVM for Java
Source: https://www.baeldung.com/oracle-jdk-vs-openjdk
Notes
- Oracle Java 9 and 10 has reached end of support.
- https://stackoverflow.com/a/50333498/3957754
More References
Differences between Oracle JDK and OpenJDK
https://whichjdk.com/
https://www.openlogic.com/blog/java-experts-openjdk-vs-oracle-jdk
https://www.oracle.com/technetwork/java/javase/overview/faqs-jsp-136696.html
https://www.oracle.com/downloads/licenses/javase-license1.html
https://openjdk.java.net/projects/jdk8/
https://www.oracle.com/java/technologies/javase/8u-relnotes.html
https://gist.github.com/jrichardsz/83db09163ca9a0db4c9cd4f91cbf0598/
https://jdk.java.net/archive