# <img src="https://www.oracle.com/a/pr/img/c82-java-logo.gif" alt="Java"/>
# JDK No-Fee Terms
This repository offers container images of Oracle JDK (Java SE Development Kit) versions available on [www.oracle.com/javadownload](https://www.oracle.com/javadownload) under the [Oracle No-Fee Terms and Conditions](https://java.com/freeuselicense) running on the latest update of [Oracle Linux](https://www.oracle.com/linux/). The Oracle No-Fee Terms and Conditions, subject to the conditions of the license, permits free use for all users – even commercial and production use.
Oracle JDK is a supported Java SE implementation; it contains a Java Runtime and the tools required for developing, testing, prototyping, demonstrating, or running your Java applications.
# Installation Instructions
You can pull the image by running the following command:
# docker pull container-registry.oracle.com/java/jdk-no-fee-term:latest
Java is installed in `/usr/java/jdk-<$FeatureVersion>` and all binaries, including `java`, `javac`, and `jshell` are available in the path via the `alternatives` tool.
The default command for this image is [`jshell`](https://docs.oracle.com/en/java/javase/18/jshell/introduction-jshell.html) which is used to interactively evaluate declarations, statements, and expressions of the Java programming language in a read-eval-print loop (REPL).
# JDK Versions Available
Oracle makes available, in this repository:
* JDK 23: The latest Feature Release, and its quarterly security and performance updates until it gets superseded by JDK 24 in March of 2025.
* JDK 21: The current Long Term Support Release, and its quarterly security and performance updates until September of 2026, one year after it has been superseded by the next LTS: JDK 25 LTS.
The container images are available for AMD64 and AArch64 systems. Calling `docker pull` without specifying an architecture will download images for the architecture that matches your docker client. You can also specify the desired architecture with the `--platform` option and either `linux/amd64` or `linux/aarch64`.
Container images with these same versions and updates to earlier JDK versions are also available, under different license term which do not allow them to be used in production without a commercial license, in Oracle Container Registry in the [java/jdk](https://container-registry.oracle.com/ords/ocr/ba/java/jdk) (JDK 23, 21, 17, and 11) and [java/serverjre](https://container-registry.oracle.com/ords/ocr/ba/java/serverjre) (JDK 8) repositories.
## OS Versions offered
The JDK container images are released on the Oracle Linux version recommended by the Oracle Linux team at the time of the initial release of the JDK. If the recommend Oracle Linux version for container images gets updated, newer JDK versions will release in the new Oracle Linux version.
At this time the following JDK/Oracle Linux versions are available:
| JDK Version | Oracle Linux Version(s) |
| ----------- | --------------------------------- |
| JDK 23 | Oracle Linux 9 |
| JDK 21 | Oracle Linux 8 and Oracle Linux 9 |
## Tags
This repository allows users to obtain the latest JDK update for each JDK release available. It also allows user to download container images with older update releases.
The tags available are created as follows:
* `latest` : Will download the current update release for the newest JDK version offered on the default Oracle Linux version for that release
* `<JDKFeatureVersion>[-oraclelinux<OLVersion>]`: e.g. `23`, `21-oraclelinux8`, `21-oraclelinux9`, will download the current update release for the specified JDK version. Adding `-oraclelinux<OLVersion>` allows users to specify the version of Oracle Linux on which the JDK is installed. Refer to the table under *OS Versions Offered* for a list of valid Oracle Linux versions for each JDK feature release.
* `<JDKVersion>[-oraclelinux<OLVersion>]`: e,g, `21-ga`, `23.0.1 `,`21.0.4-oraclelinux8`, `21.0.2-oraclelinux8` will download the requested update release for the specified JDK version. Adding `-oraclelinux<OLVersion>` allows users to specify the version of Oracle Linux on which the JDK is installed. Refer to the table under *OS Versions Offered* for a list of valid Oracle Linux versions for each JDK feature release.
> Oracle recommends using only the latest update release for each version. Older versions are provided to help developers debug issues in older systems. **They are not updated with the latest security patches and are not recommended for use in production.**
# How to use these images
The Oracle JDK image can be used as the base image for any application that requires a Java Runtime or as part of a continuous build process to generate smaller custom Java Runtimes with only the modules required by your application by using [jlink](https://docs.oracle.com/en/java/javase/20/docs/specs/man/jlink.html).
If you use these images as a base image in your own dockerfiles, you should include `RUN yum -y update && rm -rf /var/cache/yum` to ensure that your images are updated during the build process.
# Social media resources
* [X](https://twitter.com/java)
* [Facebook](https://www.facebook.com/ilovejava/)
* [YouTube](https://www.youtube.com/user/java)
* [Blogs](https://blogs.oracle.com/java/)
# Supported Docker versions
These images are offered for Docker version 1.4.1 and higher.
# Customer Support
Users who need a supported version of Java SE should get a [Java SE Universal Subscription](https://www.oracle.com/java/java-se-subscription.html) which offers support and updates for several JDK versions. The complete list of supported versions can be found on the [Oracle Java SE Support Roadmap](https://www.oracle.com/java/technologies/java-se-support-roadmap.html).