What is JDK (Java Development Kit) in Java

In this tutorial, we will discuss what is JDK (Java Development Kit) in Java but before going to discuss it, we will understand about Java platform briefly.

Java Platform (Ecosystem)


A platform is a combination of hardware and software that provides an environment in which applications are developed and run. It usually consists of hardware (CPU, memory, and storage) combined with an operating system (OS). Some of the most common platforms are Microsoft Windows, Linux, macOS, and Solaris.

The Java platform is a software-based platform that runs on top of underlying operating systems such as Microsoft Windows, Linux, and macOS. It is composed of a hierarchy of components, such as the Java Virtual Machine (JVM), Java Runtime Environment (JRE), and Java Development Kit (JDK), as shown in the figure below.

Hierarchy diagram of Java Platform.

What is Java Development Kit (JDK)?


Java Development Kit (JDK) is a software development environment used for developing Java applications, such as desktop, web, enterprise, mobile, cloud, and backend applications. It is the top-level component of the Java platform. It provides everything required to develop, compile, debug, and run Java applications for programmers.

Java Development Kit is maintained by Oracle and also distributed by multiple vendors based on the OpenJDK.

Components of Java Development Kit (JDK)

In modern Java (Java 11+), the JDK consists of the following components:

  • Java Runtime Environment (JRE)
    • Java Virtual Machine (JVM)
    • Core Java libraries
  • Java Development Tools
    • javac, java, javadoc, jdb, jar, monitoring tools, etc.

Main components of Java Development Kit (JDK) in Java

1. Java Runtime Environment (JRE)

JRE is a runtime environment that is required for running a Java application. In simple words, it is used only for executing Java programs.

Java Runtime Environment (JRE) contains the Java Virtual Machine (JVM) and core Java class libraries, also known as Java APIs. Since Java 11, the JRE is no longer distributed separately and is bundled within the JDK.

Core Java class libraries are built-in libraries provided by Java that are commonly used by Java programs, such as java.lang, java.util, java.io, and java.net. These libraries provide ready-made functionality for performing common programming tasks.

2. Java Development Tools

Java Development Tools inside JDK include essential command-line tools such as:

  • javac compiler
  • java application launcher
  • javadoc documentation tool
  • jdb debugger
  • JAR packaging tool
  • Monitoring and diagnostic tools.

The most important tools are javac compiler, java launcher, and javadoc documentation tool. Java Development Tools provides everything for compiling, running, monitoring, debugging, and documenting Java applications. We will understand the components of JDK one by one in the further tutorial.

When we compile a C or C++ program, the program code is directly translated into machine code of a particular processor or a particular platform. But, Java programs are compiled by the javac compiler and executed by the JVM, which uses an interpreter and a JIT compiler.

The JVM first interprets bytecode and then uses JIT compilation to convert it into native machine code at runtime. This allows Java programs to run on different platforms. Due to JVM startup and runtime overhead, Java programs may have slightly slower than C/C++, but their performance is often comparable once the program is running.

Java Compiler

Java compiler (javac) is a program written in Java that translates Java source code into bytecode. javac is short for Java compiler, which is platform-independent because it runs on the Java Virtual Machine.

The Java compiler is responsible for the following tasks:

  • Java compiler checks the source code for syntax and semantic errors.
  • It converts Java source code (.java files) into bytecode (.class files) with the help of Java Virtual Machine (JVM).
  • Java compiler also adds the additional code to your program if required.
  • It generates metadata required by the JVM to execute the program. This metadata is an important part of the generated .class files.

Bytecode is an intermediate, platform-independent representation of a Java program. It is not machine code and cannot be executed directly on a computer. The bytecode is executed by the Java Virtual Machine, which makes Java platform-independent.

Java Application Launcher

The Java application launcher (java) is a tool used to start Java applications. It launches the JVM, loads the required classes, and executes the main() method of a Java program.

Javadoc Documentation Tool

The javadoc tool generates HTML documentation from Java source code comments. It helps us to create well-structured and readable API documentation automatically.

Java Debugger

jdb is a command-line Java debugger used to find and fix bugs in Java programs. It allows us to set breakpoints, step through code, and inspect variables during the execution of program.

JAR Packaging Tool

The jar (Java Archive) is a packaging tool that packages multiple Java class files, associated metadata, and resources (like images, audio, etc.) into a single .jar file. It is commonly used for distributing Java applications and libraries.

What is Java Interpreter?


The Java interpreter is a core component of the Java Virtual Machine, which is responsible for executing Java bytecode. The JVM implementation is platform-dependent, while Java bytecode remains platform-independent.

To understand Java interpreter in more detail, read this tutorial: What is Interpreter in Java

What is Java Language Specification?


The Java Development Kit implements the Java Language Specification, which defines the syntax and semantics of the Java programming language.

The Java language specification is a technical definition of syntax and semantics of the Java programming language. Here, you can find the complete Java language specification at https://docs.oracle.com/javase/specs/.

Editions of Java Platforms


The Java platform comes in three editions based upon device type. They are as follows:

1. Java SE (Standard Edition): This edition is used to develop client-side applications. It is used to develop applications for desktop, communication, and user interface.

2. Java EE (Enterprise Edition): This edition is used to develop server-side applications such as Java servlets, JavaServer Pages (JSP), and JavaServer Faces (JSF). In other words, it is used to develop web-based, messaging, distributed, and enterprise applications.

3. Java ME (Micro Edition): This edition is used to develop applications for mobile devices, such as cell phones. It is also used to develop Personnel Digital Assistants, Setup Box, and printers applications.

We will use Java SE to learn Java programming. Java SE is the foundation upon which all other Java technology is based. There are many versions of Java SE but you download the latest and stable Java SE edition.

Oracle releases each version with a Java Development Toolkit (JDK). For example, for Java SE 8, the Java Development Toolkit is called JDK 1.8 (also known as Java 8 or JDK 8).

List of Java Development Kit (JDK) version


Here, we have listed JDK versions with release dates that are as follows:

  1. JDK Beta: 1995
  2. JDK 1.0: January 1996
  3. JDK 1.1: February 1997
  4. JDK (J2SE) 1.2: December 1998
  5. JDK (J2SE) 1.3: May 2000
  6. JDK (J2SE) 1.4: February 2002
  7. JDK (J2SE) 5.0: September 2004
  8. JDK (Java SE) 6: December 2006
  9. JDK (Java SE) 7: July 2011
  10. JDK (Java SE) 8 (LTS): March 2014
  11. JDK (Java SE) 9: September 2017
  12. JDK (Java SE) 10: March 2018
  13. JDK (Java SE) 11 (LTS): September 2018
  14. JDK (Java SE) 12: March 2019
  15. JDK (Java SE) 13: September 2019
  16. JDK (Java SE) 14: March 2020
  17. JDK (Java SE) 15: September 2020
  18. JDK (Java SE) 16: March 2021
  19. JDK (Java SE) 17 (LTS): September 2021
  20. JDK (Java SE) 18: 22nd March 2022
  21. JDK (Java SE) 19: 20th Sept 2022
  22. Java SE 20: 21st March 2023
  23. JDK (Java SE) 21 (LTS): September 2023
  24. JDK (Java SE) 22: March 2024
  25. JDK (Java SE) 23: September 2024
  26. JDK (Java SE) 24: March 2025
  27. JDK (Java SE) 25 (LTS): September 2025

Here, LTS stands for long-term support. LTS versions receive updates for several years. The current and future LTS versions:

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

Confusion Regarding Using JDK and JRE


Often, new Java programmers may confuse about whether to use JDK or JRE. To run Java applications, simply download JRE. To develop Java applications and run them, JDK is useful.

Java developers who want to work in an integrated development environment (IDE), download a JDK bundled with Netbeans from the Oracle website.

Such IDEs speed up the development process by introducing point-and-click and drag-and-drop features for developing an application.


Conclusion

We hope this tutorial has covered the most important basic points related to “What is JDK”. You have understood the fundamental concepts of the Java platform and the Java Development Kit. Stay tuned for some important frequently asked questions on the Java Development Kit, which are commonly asked in interviews.

DEEPAK GUPTA

DEEPAK GUPTA

Deepak Gupta is the Founder of Scientech Easy, a Full Stack Developer, and a passionate coding educator with 8+ years of professional experience in Java, Python, web development, and core computer science subjects. With strong expertise in full-stack development, he provides hands-on training in programming languages and in-demand technologies at the Scientech Easy Institute, Dhanbad.

He regularly publishes in-depth tutorials, practical coding examples, and high-quality learning resources for both beginners and working professionals. Every article is carefully researched, technically reviewed, and regularly updated to ensure accuracy, clarity, and real-world relevance, helping learners build job-ready skills with confidence.