🌐
Oracle
oracle.com › java › technologies › downloads
Download the Latest Java LTS Free
Download the Java including the latest version 17 LTS on the Java SE Platform. These downloads can be used for any purpose, at no cost, under the Java SE binary code license.
🌐
Oracle
java.com › en › download › manual.jsp
Download Java
This download is for end users who need Java for running applications on desktops or laptops. Java 8 integrates with your operating system to run separately installed Java applications. If you were asked to install Java to run a desktop application, it's most likely you need this version.
🌐
Wikipedia
en.wikipedia.org › wiki › Java_version_history
Java version history - Wikipedia
1 week ago - Java 5 is the last release of Java to officially support Microsoft Windows 98 and Windows ME, while Windows Vista was the newest version of Windows that Java SE 5 was supported on prior to Java 5 going end-of-life in October 2009.
🌐
Oracle
java.com › releases
JDK Releases
Prior to Java SE 8, all significant new features were developed by independent JSRs under the JCP then incorporated by reference in the Platform JSR. Starting with Java SE 8, this practice was discontinued, and the JDK Enhancement Proposal (JEP) Process was introduced.
🌐
Oracle
oracle.com › java › technologies
Java SE | Oracle Technology Network | Oracle
Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers.
🌐
Minecraft
minecraft.net › en-us › article › minecraft-java-edition-1-21-11
Minecraft Java Edition 1.21.11 | Minecraft
1 day ago - A new "Preset" slider was added to the top of the "Quality & Performance" section · Presets, as you would expect based on gaming industry standard, control most of the "Quality & Performance" settings at once, not only the ones that were previously hidden behind the "Graphics" setting · Available presets are "Fast", "Fancy", "Fabulous!" and "Custom" ... But for players who are upgrading to this version ...
🌐
Minecraft
minecraft.net › en-us › article › play-mounts-of-mayhem-today
Play Mounts of Mayhem today | Minecraft
1 day ago - This game drop is available to play now in Minecraft Bedrock and Java Edition! Play it now Don't have Minecraft yet? Get the game · Catch up on the latest Minecraft news & game updates!
Find elsewhere
🌐
Oracle
java.com › en › download › java8_update.jsp
Free Java Update 8
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 8u471) be used after the next critical patch update scheduled for January 20, 2026. Java ...
🌐
Oracle
java.com › en › download › more_info.jsp
Free Java Update
October 21, 2025 - Your system currently has an older version of Java and you are receiving this update notification because a newer version has been automatically detected.
🌐
Minecraft
minecraft.net › en-us › article › minecraft-1-21-11-release-candidate-3
Minecraft 1.21.11 Release Candidate 3 | Minecraft
1 day ago - As we are preparing to remove obfuscation from Java Edition, you can also get a non-obfuscated experimental version of this snapshot using the Minecraft Launcher: ... Create a new launch installation and select the "unobfuscated 1.21.11 Release ...
🌐
Azul Systems
azul.com › home › azul downloads
Java 8, 11, 17, 21, 25 Download for Linux, Windows and macOS
September 23, 2025 - Click here to download the Azul Zulu Builds of OpenJDK for Java 8, 11, 17, 21, 25 for Linux, Windows and macOS. Also download Azul Platform Prime.
🌐
Baeldung
baeldung.com › home › java › core java › new features in java 25
New Features in Java 25 | Baeldung
July 2, 2025 - Java 25 is the newer LTS release. It offers valuable advantages and new capabilities that make it worthwhile for us, as developers, to upgrade our applications, so that we can leverage the new features added since the last LTS version (Java 21).
🌐
Minecraft
minecraft.net › en-us › article › minecraft-new-version-numbering-system
Minecraft new version numbering system | Minecraft
2 days ago - This is an example to show how ... In both Bedrock and Java, the version number will be based on the year – and it will be followed by the release number, and then the patch or hotfix number....
🌐
Minecraft
minecraft.net › en-us › article › minecraft-1-21-11-pre-release-1
Minecraft 1.21.11 Pre-Release 1 | Minecraft
2 days ago - As we are preparing to remove obfuscation from Java Edition, you can also get a non-obfuscated experimental version of this snapshot using the Minecraft Launcher: ... Create a new launch installation and select the "unobfuscated 1.21.11 Pre-Release ...
🌐
CodeJava
codejava.net › java-se › java-se-versions-history
Java SE versions history and important changes
October 6, 2025 - From Java 6, the version name is Java SE X.Major versions were released after every 2 years, however the Java SE 7 took 5 years to be available after its predecessor Java SE 6, and 3 years for Java SE 8 to be available to public afterward.Since Java SE 10, new versions will be released very ...
🌐
Oracle
java.com › en
Java | Oracle
Oracle Java is the #1 programming language and development platform. It reduces costs, shortens development timeframes, drives innovation, and improves application services. Java continues to be the development platform of choice for enterprises and developers · For End Users on a Desktop ...
🌐
JetBrains
blog.jetbrains.com › idea › 2025 › 09 › java-25-lts-and-intellij-idea
Java 25 LTS and IntelliJ IDEA | The IntelliJ IDEA Blog
September 26, 2025 - Java 25 was released on September 16, 2025. At JetBrains, we are committed to supporting new technologies in IntelliJ IDEA and adding useful enhancements for both stable and preview features.
Top answer
1 of 1
7

tl;dr

Every six-month release of Java is of the highest quality, production-ready, subjected to more testing than any other general-purpose development platform. Choose from any of several JDK/JRE vendors.

  • If you deploy often, use the freshest release available every March & September.
  • If you deploy less often, use the Long-Term Support (LTS) version released every two years.

Depending on your needs, consider purchasing a support contract from any of several vendors.

Every version of Java is stable and reliable

The Java specifications are updated on a six-month cadence, per the “release train” model used for several years now.

  • Finalized features are included.
  • Features not yet complete are held back for possible inclusion in the next release, six months later, when the next train leaves the station.
  • Preview features are completely implemented and production-ready but are disabled by default, hidden behind feature flags, as they are subject to change.

Implementations of the Java specifications follow this same six-month cadence. (See FAQ.) The most important of the implementations is the open-source codebase at the OpenJDK project. However that project publishes only source code, not binaries nor installers.

For JDK/JRE products delivered as binaries or installers, choose from any of several vendors:

  • IBM
  • Red Hat
  • Adoptium by the Eclipse Foundation
  • Amazon
  • Azul Systems
  • Microsoft
  • BellSoft
  • Oracle
  • SAP
  • … and more

Most of the JDK/JRE products from various vendors are based largely, if not entirely, on the OpenJDK codebase.

All of these JDK/JRE products are thoroughly tested. Nearly all have been tested by the Technology Compatibility Kit (TCK). Some are also subjected to the Eclipse AQAvit test suite.

So every JDK/JRE product from any of these vendors is the highest quality and production ready. You can always deploy the latest release of Java.

Your confusion may come from the fact that most releases of Java are supported for a short time only. The support period typically runs from launch to a few months after the succeeding version’s launch, for a total of about nine months. That is generally the case, though each vendor makes their own support policy. Any vendor may offer extended support, perhaps for a fee.

Long-Term Support (LTS) versions

Every few years a particular version of Java may be designated by the vendors as a Long-Term Support (LTS) version. Historically, the community of JDK vendors has followed the lead of Oracle in making this LTS declaration. So we have seen an LTS every three years in the past, and every two years currently. The LTS versions include:

  • Java 8
  • Java 11
  • Java 17
  • Java 21
  • Likely Java 25

See Java version history at Wikipedia for details.

Be very clear though: These LTS versions are not any more reliable or stable than the other versions. Every version of Java is feature-complete, and of the highest quality. The LTS versions are not any more important or better than the short-lived versions. The LTS designation is an arbitrary one, based on the calendar, not on quality.

OpenJDK source code and the JDK/JRE products are perhaps the most thoroughly examined and well tested software ever released (outside of specialty fields such as aerospace or military).

Development & deployment choices

Many Java developers make a habit of developing and/or testing with the latest version of Java to ensure compatibility. Some developers limit deployment to LTS versions only, while others with rapid releases may choose to always use the latest version.

The choice is yours to make based on your development and deployment situation, without concern for the quality of any particular Java version.

How does LTS work?

For the nitty-gritty on exactly what LTS means in the Java community, see this article & video by Nicolai Parlog.


To understand more about the Java ecosystem, see the white paper by pillars of the Java community, Java Is Still Free.

🌐
Reddit
reddit.com › r/java › what is the point of all these new java versions when java 8 is all that seems to be supported by most apps?
r/java on Reddit: What is the point of all these new Java versions when Java 8 is all that seems to be supported by most apps?
September 3, 2019 -

This is likely to be a really dumb question, but why are there constantly new major versions of Java being released, but everything we need Java for in our infrastructure continues to use Java 8? I remember when Java 9 and 10 came out and I thought we would be moving to those versions. But here we are in 2021, and all our Java dependent software still comes bundled with the latest Java 8 version. Even my daughter's Minecraft software still uses Java 8, right? I just saw Java 16 being published on Oracle's website. What am I missing about all of this?

Top answer
1 of 5
22

Because they switched to a new release model which allows for them to get new features out faster.

Same thing happened when Firefox and chrome switched to a timed release model. People bitched about version numbers but slowly got use to the fact that "I don't really care that this is firefox 82".

From an organization standpoint, this has been great for the Java getting features out. It used to be that they'd say "Ok, we are going to target key feature X for java Y". The problem with that is nearly all project development got devoted to that feature and ultimately "when" java would go out was completely unknown. Further, releases where crazy times for JDK developers.

With the new model, they've been able to work on a lot more features in parallel. A ton of usability features made it in (records, pattern matching, string literals) which never would have made it in the old model. Further, it's allowed them to slowly walk in huge features (Valhalla, loom, etc) making pre-emptive changes needed to support massive changes in the future.

Post Java 9, the upgrades have been a breeze. Honestly, I almost wish they'd move to an even faster release model to really force people to stop caring so much about these version numbers. Rust does a release every 6 weeks and I think that works great. Nobody cares that it's now Rust 1.50 or whatever.

2 of 5
19

What am I missing about all of this?

Well you are missing out on a lot;

  • Lots of JVM (HotSpot) enhancements

  • Updates to the Streams API

  • Records

  • Text Blocks

  • Switch expressions

  • Pattern matching for instanceof

  • var

Just to name a few, but it's really small list compared to all that has been added since 8, you can see all the additions here.

Upgrading infrastructure can be difficult and time consuming. There was also a lot of FUD related to the Module System which was a part of Java 9. Have a hard time imaging any meaningfully popular tool or frameworks which doesn't support Java 11, which keep in mind it has been out for nearly three years now, and many tools and frameworks release support for the most current version of Java right around it's release.

Top answer
1 of 2
12

Later Java runs earlier apps

You said:

JAR files will not open and say that they were made using a more recent version

An implementation of Java will be able to run most any Java app built with earlier versions of Java.

For example…

If you compile your app using Java 8, you will almost certainly be able to run that app with Java 8, Java 9, Java 10, Java 11, and so on, all the way through to today’s Java 25.

This compatibility is one of the highest priorities for the Java team at Oracle, and a large part of Java’s success. Breaking changes have been kept to an absolute minimum. “Move fast and break things” is not their motto, just the opposite.

Going the other direction…

If you compile your app using Java 20, you will not be able to run that app with Java 8, Java 9, Java 10, and through to Java 19. A later version of Java and its compiler will be using features that did not exist in those earlier versions. So, of course, older runtimes cannot execute later apps.

If you compile with 20, you need to run with 20 or later (20, 21, 22, 23, 24, 25+).

Java Release Train

Java 25 is current now in 2024-09.

Java releases arrive on a regular schedule, like a train, every six months, Autumn & Spring. Any feature not yet production-quality gets bumped to the next release, like a passenger missing a train boards the next one.

LTS

Versions 8, 11, 17, 21, & 25 are designated as long-term support version. These versions continue to see updates over many years. The other versions in-between receive updates only for several months.

JDK & JRE

You said:

but not the JDK. This appears to be what someone who was not a developer would download.

A Java Runtime Environment (JRE) is an implementation of the Java SE specifications, a complete Java platform, with all the software you need to execute an app written in a JVM-compatible programming language such as the Java programming language, Groovy, Scala, and more.

This JRE software consists primarily of a Java virtual machine (JVM) which executes the Java bytecode of a JVM-based app, and adapts that app to the host operating system. A JRE also provides an implementation of the standard Java class libraries. And you get a few tools: jfr, jrunscript, jwebserver, keytool, rmiregistry (docs).

A Java Development Kit (JDK) is a JRE plus tools necessary to write Java apps. These tools include a compiler, a debugger, a profiler, a Javadoc (documentation) processor, and more.

So:

  • For you to write a Java app, you need a JDK.
  • For your customers to run your app, they need a JRE.
JRE JDK
Runtime engine: JVM, classes, & tools Developer kit: JRE + compiler + more tools

Both JDKs & JREs can be obtained from any of several vendors listed below.

Rolling compatibility

An app compiled for a lower numbered version of Java can be run on the same or higher numbered version of Java. (Unless using a feature later removed, a rare occurrence with Java.)

So yes, an app built for Java 8 can run on Java versions 8, 9, … 17, 18, 19, and 20. But not the other way round. An app built for Java 18 can only be run on Java versions 18, 19, and 20.

JDK vendors

You can obtain a JDK or JRE from any of several vendors.

These vendors include, in no particular order:

  • Amazon
  • Adoptium (the Eclipse Foundation)
  • SAP
  • BellSoft
  • Microsoft
  • Azul Systems
  • Oracle
  • Red Hat
  • IBM

… and more.

If you have no reason to choose a particular vendor, then I suggest starting with Adoptium, a joint effort across the Java community.

Be sure to study the vendor’s legal licensing terms.

Tip: One very convenient way to obtain a JDK/JRE product from a subset of those vendors is by using SDKMAN!, a simple console app.

Every JDK release is production-quality

You said:

JDK 20, which I see has some features in testing

Any feature available by default in Java 20 (or any version) is entirely ready for production use. Each release from any of the JDK vendors has gone through extensive testing.

Any feature not ready for production, because the details may change, is marked as either incubating or preview. These features are never available to you by default. So you cannot use them unwittingly. You have to go out of your way to activate such features. Note that such features are complete in that they have been fully built and tested — they are not “half-baked”. So these features can be used if you so choose, but come with the caveat that they may change or even be withdrawn in the next version.

So understand:

  • Every new release of every JDK version is fully ready for production use.
  • Java 20 was fully ready for production use.

(Java 20 no longer received updates a few months after the successive version 21 shipped.)

Every JDK is an implementation of Java SE spec

You said:

What is the JDK to Java SE equivalence?

Java SE is a set of specifications published by Oracle Corp.

”Java” (and ”Java SE”) is a trademark owned by Oracle Corp. Available for use only with permission by Oracle.

A JDK is an implementation of the Java specs, plus a compiler and other tools for development and administration.

Some JDK products use the trademark “Java”, but only if permitted by Oracle.

OpenJDK is an open-source project developing a codebase for implementing Java across several chip architectures and operating systems. Many companies and individuals contribute. These include Oracle, IBM, Apple, and others. Many JDK products are based largely, if not entirely, on the OpenJDK codebase.

The term “OpenJDK” may be confusing. Oracle permits any JDK vendor to use the term within the name of their JDK product. Some vendors do, and some do not. Just be clear that the OpenJDK project produces only source code and early-access builds, not finalized binaries or installers . To obtain finalized binaries or installers, choose a vendor from the list seen above.

Java spec number = JDK number

You asked:

What is the JDK to Java SE equivalence?

Every generation of Java specifications use the same numbering as their implementations found in various JDK/JRE products.

So Java 24 specs are implemented by JDK/JRE products numbered 24. Java 25 specs are implemented by JDK/JRE products numbered 25. Sensible and orderly.

More info

For more details, see the whitepaper Java Is Still Free written by pillars of the Java community.

2 of 2
5

"I googled and downloaded the most recent version of Java, version 8u361"

That is NOT the most recent version of Java. You presumably looked at https://java.com/en which is entitled "Get Java for desktop applications". Look here instead: https://oracle.com/au/java/technologies/downloads.

Since Java 9, Oracle's position is that it is the developer's responsibility1 to provide the JRE or JDK for running any desktop applications that they develop and distribute. See Oracle’s white paper, Java Client Roadmap Update, 2020-05.

So you won't find Oracle or OpenJDK badged JREs for Java after Java 8. For post-Java 8, your options are:

  • Instruct your users on how to install an Oracle or OpenJDK JDK.
  • Instruct your users on how to install a 3rd-party JRE.
  • Use a 3rd-party installer generator to create an installer with an embedded JRE (obtained from a 3rd party) or JDK.
  • Use jlink to create a custom JRE for your application.
  • For Java 14 and later, use jpackage to create a native executable for your application.

But to answer your question Java SE 8 (aka JDK 1.82) is 8uxxx, Java SE 9 is 9uxxx, Java SE 10 is 10uxxx and so on. There is no mystery to the compatibility / equivalency.


1 - Oracle don't want to (unfairly) cop the blame for out-of-date / insecure Java installations dropped by application installers. And the don't want to (unfairly) cop the blame when an official Java patch release installed by the user causes an application to stop working. Dealing with these things is now 100% your responsibility as the app developer / distributor.
2 - The Java 1.N versus Java N stuff is engineering vs marketing nonsense that started back in the early 2000's. Don't be fooled. And for more information about Java versions, see the Wikipedia Java Version History page.)