The JDK is the Java Development Kit, the full-featured SDK for Java. It has everything the JRE has, but also the compiler (javac) and tools (like javadoc and jdb). It is capable of creating and compiling programs.

Sometimes, even if you are not planning to do any Java development on a computer, you still need the JDK installed. For example, if you are deploying a web application with JSP, you are technically just running Java programs inside the application server. Why would you need the JDK then? Because the application server will convert JSP into Java servlets and needs to use the JDK to compile the servlets.

For full information and terms, refer to the OTN License Agreement for Java SE. The OTN License Agreement for Java SE for current Oracle Java SE releases allows them to be used, without cost:

  • (i) For personal use on a desktop or laptop computer, such as to play games or run other personal applications.
  • (ii) For development, testing, prototyping, and demonstrating applications, including to use by/with profilers, debuggers, and Integrated Development Environment tools.
  • (iii) For use with some approved products, such as Oracle SQL Developer, or as an end user of a software application created by an approved product. (referred to as "Schedule A" and "Schedule B" Products in the OTN License Agreement for Java SE)
  • (iv) With identified Oracle Cloud Infrastructure products.

The new Oracle Technology Network License Agreement for Oracle Java SE is substantially different from prior Oracle JDK licenses. The new license permits certain uses, such as personal use and development use, at no cost – but other uses authorized under prior Oracle JDK licenses may no longer be available.

The latest version of Java is Java 26 or JDK 26. However, many versions of Java are actively maintained for compatibility purposes. Java 8, Java 11, Java 17, Java 21, and Java 25 are now the five long-term support versions recommended by Oracle alongside the latest release. You can download the version you need below:

Java 8 is the last free software public update for commercial use, which explains why it remains popular even though it was released back in 2014. 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?

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 mainstream games like Minecraft are based on Java.

What is Java JRE?

The Java Runtime Environment or JRE contains everything required to run Java applications on your system. The JRE software package includes the Java Virtual Machine (JVM), the Java Class Library, the Java command, and other infrastructure. JRE cannot be used to create new programs.

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.

Do I need Java JRE or Java JDK?

Unless you are a software developer, you only need to install Java JRE in your system to run Java programs. On the other hand, if you are planning to do some Java programming, you need to install the JDK instead.

Sometimes, even if you are not planning to do any Java programming, you still need the JDK installed. For example, if you are deploying a web application with JSP, you are technically just running Java programs inside the application server. Why would you need the JDK then? Because the application server will convert JSP into Java servlets and needs to use the JDK to compile the servlets.

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.

What popular apps use Java?

As the fifth most popular programming language in the world, there is a long list of popular apps that rely on Java. From games like Minecraft and RuneScape, services like Netflix, Spotify and Uber, and applications like Opera Mini have all been created using Java.

What's New

These notes describe important changes, enhancements, removed APIs and features, deprecated APIs and features, and other information about JDK 26. In some cases, the descriptions provide links to additional detailed information about an issue or a change. This page does not duplicate the descriptions provided by the Java SE 26 ( JSR 401) Platform Specification, which provides informative background for all specification changes and might also include the identification of removed or deprecated APIs and features not described here. The Java SE 26 ( JSR 401) specification provides links to:

You can find the complete release notes here. However this a summary of the most important:

Language

Primitive Types in Patterns, instanceof, and switch (Fourth Preview)

  • Enhance pattern matching by allowing primitive types in all pattern contexts, and extend instanceof and switch to work with all primitive types. This is a preview language feature.

Libraries

HTTP/3 for the HTTP Client API

  • Update the HTTP Client API to support the HTTP/3 protocol, so that libraries and applications can interact with HTTP/3 servers with minimal code change.

Lazy Constants (Second Preview)

  • Introduce an API for lazy constants, which are objects that hold unmodifiable data. Lazy constants are treated as true constants by the JVM, enabling the same performance optimizations that are enabled by declaring a field final. Compared to final fields, however, lazy constants offer greater flexibility as to the timing of their initialization. This is a preview API.

Structured Concurrency (Sixth Preview)

  • Simplify concurrent programming by introducing an API for structured concurrency. Structured concurrency treats groups of related tasks running in different threads as single units of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability. This is a preview API.

Vector API (Eleventh Incubator)

  • Introduce an API to express vector computations that reliably compile at runtime to optimal vector instructions on supported CPUs, thus achieving performance superior to equivalent scalar computations.

Security Libraries

PEM Encodings of Cryptographic Objects (Second Preview)

  • Introduce an API for encoding objects that represent cryptographic keys, certificates, and certificate revocation lists into the widely-used Privacy-Enhanced Mail (PEM) transport format, and for decoding from that format back into objects. This is a preview API.

Performance

G1 GC: Improve Throughput by Reducing Synchronization

  • Increase application throughput when using the G1 garbage collector by reducing the amount of synchronization required between application threads and GC threads.

Ahead-of-Time Object Caching with Any GC

  • Enhance the ahead-of-time cache, which enables the HotSpot Java Virtual Machine to improve startup and warmup time, so that it can be used with any garbage collector, including the low-latency Z Garbage Collector (ZGC). Achieve this by making it possible to load cached Java objects sequentially into memory from a neutral, GC-agnostic format, rather than map them directly into memory in a GC-specific format.

Removals and Warnings for Future Changes

Prepare to Make Final Mean Final

  • Issue warnings about uses of deep reflection to mutate final fields. These warnings aim to prepare developers for a future release that ensures integrity by default by restricting final field mutation, which will make Java programs safer and potentially faster. Application developers can avoid both current warnings and future restrictions by selectively enabling the ability to mutate final fields where essential.

Remove the Applet API

  • Remove the Applet API, which was deprecated for removal in JDK 17 (2021). It is obsolete because neither recent JDK releases nor current web browsers support applets.