The Java Development Kit (JDK) is a software development environment used to develop Java applications and applets. It includes the Java Runtime Environment (JRE), a compiler (javac), debugger (jdb), documentation generator (javadoc), archiver (jar), and other essential tools for Java development.

Key Components of the JDK

  • javac: Compiles Java source code into bytecode.

  • java: Runs Java applications using the JVM.

  • javadoc: Generates API documentation from source code comments.

  • jar: Packages related class files into a single JAR file.

  • jdb: Debugs Java programs.

  • jshell: Interactive tool introduced in Java 9 for testing code snippets.

JDK vs. JRE vs. JVM

  • JVM (Java Virtual Machine): Executes Java bytecode.

  • JRE: Provides the libraries and JVM to run Java applications.

  • JDK: Includes the JRE plus development tools—required for writing and compiling Java code.

Popular JDK Options

  • Oracle JDK: Commercial version with long-term support (LTS) under Oracle’s No-Fee Terms and Conditions (NFTC) license.

  • OpenJDK: Open-source reference implementation; the foundation for most JDKs.

  • Adoptium Temurin (Eclipse Temurin): Free, open-source, and widely used for production.

  • Azul Zulu: Based on OpenJDK, supports multiple platforms and is free for commercial use.

  • Bellsoft Liberica: High-performance JDK with strong support for cloud and container environments.

Downloading the JDK

  • Oracle JDK: Download from Oracle's official site

  • OpenJDK Builds: Adoptium (Eclipse Temurin) or OpenLogic

  • Latest LTS Versions: Java 17 and Java 21 are recommended for new projects; Java 8 remains widely used for legacy systems.

Recommendation: For most developers, Adoptium Temurin or Azul Zulu are excellent free, general-purpose JDKs. Use Oracle JDK only if you need specific enterprise features or support.

set of several computer software products and specifications
Dukesource125.gif
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide … Wikipedia
Factsheet
Java (software platform)
Factsheet
Java (software platform)
🌐
Oracle
oracle.com › java › technologies › downloads
Download the Latest Java LTS Free
GraalVM for JDK 17 has moved and is now available through My Oracle Support (MOS). ... Java SE subscribers will receive JDK 17 updates until at least September 2029.
🌐
Oracle
java.com › es
Java | Oracle
December 22, 2025 - Descargas de Java Development Kit (JDK) y recursos de Oracle gratuitos, los administradores de Java · Descargas para desarrolladores · Recursos para desarrolladores · Recursos para empresas ·
Discussions

java - Differences between Oracle JDK and OpenJDK - Stack Overflow
NOTE: This question is from 2014. As of Java 11 OpenJDK and Oracle JDK are converging. Are there any crucial differences between Oracle and OpenJDK? For example, are the garbage collection and... More on stackoverflow.com
🌐 stackoverflow.com
The best general-purpose JDK out there? And what's your go-to
Aside from licensing, are there actual meaningful differences between the implementations? More on reddit.com
🌐 r/java
92
55
August 2, 2025
Java / Java SE / JDK / JRE - which is which and what do I want?
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns. More on reddit.com
🌐 r/javahelp
6
2
July 4, 2021
Is the Java JDK written in C/C++? : learnprogramming
🌐 r/learnprogramming
🌐
Dev.java
dev.java › learn
Learn Java - Dev.java
Java has come a long ways since Java 8. Let's go over some of this evolution. ... How to compile and execute the preview features available in the JDK.
🌐
Oracle
java.com › releases
JDK Releases
With the release of JDK 6 we went back to using JDK without the “2”. The Java version-string format has changed several times throughout the years.
🌐
GeeksforGeeks
geeksforgeeks.org › java › jdk-in-java
JDK in Java - GeeksforGeeks
October 4, 2025 - It works together with the JVM (Java Virtual Machine) and JRE (Java Runtime Environment) as part of the core Java setup. The JDK includes everything required for Java development — compilers, debuggers, and other essential tools.
🌐
Bell Software
bell-sw.com › pages › downloads
Java Download | Java 8, Java 11, Java 17, Java 21, Java 25 - OpenJDK Builds for Linux, Windows & macOS
Download Liberica JDK, supported OpenJDK builds. Open source Java 8, 11 and more for Linux, Windows, macOS.
Find elsewhere
Top answer
1 of 14
439

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.

Many vendors implemented the Java specification and got TCK passed. For example, IBM J9, Azul Zulu, Azul Zing, and Oracle JDK.

Almost every existing JDK is derived from OpenJDK.

As suggested by many, licensing is a change between JDKs.

Starting with JDK 11 accessing the long time support Oracle JDK/Java SE will now require a commercial license. You should now pay attention to which JDK you're installing as Oracle JDK without subscription could stop working. source

Ref: List of Java virtual machines

2 of 14
348

For Java 7, nothing crucial. The OpenJDK project is mostly based on HotSpot source code donated by Sun.

Moreover, OpenJDK was selected to be the reference implementation for Java 7 and is maintained by Oracle engineers.

There's a more detailed answer from 2012 on difference between JVM, JDK, JRE & OpenJDK, which links to an Oracle blog post:

Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?

A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

🌐
Microsoft Learn
learn.microsoft.com › en-us › java › openjdk › download
Download the Microsoft Build of OpenJDK | Microsoft Learn
January 28, 2026 - Invoke-WebRequest -Uri https://aka.ms/download-jdk/microsoft-jdk-25-windows-x64.zip · For a complete list of available URLs and versions, see this page. This page only lists the latest updates available. To download older releases, visit this document. Send us your comments, thoughts, and ideas to help us improve the Microsoft Build of OpenJDK. Visit our OpenJDK discussions page on GitHub to send us your feedback. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
🌐
OpenLogic
openlogic.com › openjdk-downloads
OpenJDK Downloads | OpenLogic
Free, quarterly builds of OpenJDK for Linux, Windows, and MacOS.
🌐
Oracle
jdk.java.net
JDK Builds from Oracle
Looking to learn more about Java? Visit dev.java for the latest Java developer news and resources. Looking for Oracle JDK builds and information about Oracle’s enterprise Java products and services?
🌐
Oracle
java.com › en › download › manual.jsp
Download Java
Developers are encouraged to download the latest Java Development Kit from OTN downloads.
🌐
Wikipedia
en.wikipedia.org › wiki › Java_Development_Kit
Java Development Kit - Wikipedia
1 day ago - JDK is designed to be mainly used to communicating with the JRE, but it can be replaced by others JDK-based languages which can communicate with JRE and JVM, for example, Kotlin.^ Furthermore, Java bytecode can be compiled statically directly into native code only with a JVM but without the ...
🌐
Sololearn
sololearn.com › en › Discuss › 108414 › what-is-jdk
What is jdk? | Sololearn: Learn to code for FREE!
The Java Development Kit (JDK) is a software development environment used for developing Java applications and applets.
🌐
Azul Systems
azul.com › home › azul downloads
Java 8, 11, 17, 21, 25 Download for Linux, Windows and macOS
3 days ago - 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.
🌐
Oracle
jdk.java.net › 11
JDK 11 Releases
The JDK 11 Early Access Program has concluded. Please visit Java SE Downloads for production ready builds.
🌐
Reddit
reddit.com › r/javahelp › java / java se / jdk / jre - which is which and what do i want?
r/javahelp on Reddit: Java / Java SE / JDK / JRE - which is which and what do I want?
July 4, 2021 -

Okay, context. I'm trying out some programming languages to perhaps get into (after previously primarily doing stuff with C#). One of these is Java. I had a 2019 version of Eclipse installed from last time I wanted to learn Java. Updated it to 2021, and it tells me I need Java 11 or higher.

So I google "download Java". Oracle offers me to download Java 8 Update 291, released April 2021. I check my instaleld version. Sure enough, I have Java 8 Update 291. If I am up to date, why is Eclipse complaining, I wonder? So I google Java 11. Huh, what's that, there are versions of Java up to 16? One article mentions that Java 8 has been deprecated for years. Odd, I think, didn't Oracle tell me just now that Java 8 was released in 2021? Oh, I see, they are talking about something called "Java SE". So I google what that is. "java vs java se", I google, but all I get are articles about how Java SE is different from something called Java EE. Never heard of it, I don't want it. In the meantime, I have also googled for JDK, since I assume that I need the Java SDK to get the compilers. Maybe the JDK has a different version number than the JRE, I theoretise. But then what is this Java SE? At one point, it says it's the standard edition, but on the next page, it says it's "for reference purposes only". Whatever that means. Can I use it to run and compile Java or not, I ask.

tldr: why is there a Java 16 if Oracle tells me 8 is the latest, which one do I want to run and program with the latest Eclipse?

P.S. necessary context is perhaps that I'm on 64-bit Windows 7 (my Eclipse install on my Linux laptop works fine)

Top answer
1 of 5
6
The JRE is the Java Runtime Environment, you need it to run java applications. The JDK is the Java Development Kit, you need it to compile your code, it also includes the JRE. About Java SE and EE, to my understanding, I may be wrong here, SE is Standard Edition, what you use for personal use. Java EE is the enterprise Edition, is used by business and you have to pay for it. About the versions. There is java up to 16, at the moment the most used Java versions are Java 8, Java 11 and Java 16 (the latest). Java 8 is used because Java 9 broke lots of Java 8 applications, only use it to run Java 8 applications not develop. Java 11 is the most used to make applications, if you don't use the latest version to make your applications probably you want to use this one. Java 16 is just the latest. These 3 java versions are the ones that are still receiving new builds ('updates'). When you search to download Java oracle will most likely give you the latest build of Java 8. I recommend you installing the JDK of Java 11 and 16 and if you want the JRE of Java 8. To download the JDK just search for "Java 11 jdk" and this page will show up.
2 of 5
1
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
🌐
Incus Data
incusdata.com › home › which java jdk should you use?
Which Java JDK Should You Use? • 2026 • Incus Data Programming Courses
October 11, 2023 - BellSoft Liberica JDK builds. Amazon Corretto builds are good especially if you run Java applications on Amazon Linux 2 in AWS.
🌐
Oracle
oracle.com › java › technical details
JDK and GraalVM Script Friendly URLs
Here is a fraction of a sample docker file that will download the current JDK 25 version as a tar.gz, check the download against it’s checksum, and extract it to /usr/java/jdk-25
🌐
Visual Studio Code
code.visualstudio.com › docs › languages › java
Java in Visual Studio Code
November 3, 2021 - A Java Development Kit (JDK) is a software development environment used for developing Java applications. In order to run Java within Visual Studio Code, you need to install a JDK.