# <img src="https://www.oracle.com/a/pr/img/c82-java-logo.gif" alt="Java Logo"/>
Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers, as well as in today's demanding embedded environments. Java offers the rich user interface, performance, versatility, portability, and security that today's applications require.
Oracle JDK is a supported Java SE implementation; it contains a Java Runtime and the tools required for developing, testing, prototyping or demonstrating your Java applications.
# Installation Instructions
Before you can pull this image from the Oracle Container Registry, you will need to sign in using your Oracle Account and accept the Oracle Standard Terms. If you do not already have an Oracle Account you will be given the opportunity to create one.
After accepting the license terms, on your Docker client use the `docker login` command:
# docker login container-registry.oracle.com
Username: <Oracle Account Username>
Password: <auth token>
Login successful.
Once you have successfully logged in, pull the JDK image by running the following command:
# docker pull container-registry.oracle.com/java/jdk: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/21/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 container images with all the JDK updates for JDK 8 and later posted on [www.oracle.com/javadownload](https://www.oracle.com/javadownload).
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 the latest releases, available under the Oracle No-Fee Terms are conditions, are also offered, under more permissive license terms, in the [java/jdk-no-fee-term](https://container-registry.oracle.com/ords/ocr/ba/java/jdk-no-fee-term) repository.
## 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. Updates for older images will continue to be produced in the original Oracle Linux version for as long as that Linux version is in premier support. Additional Oracle Linux images might be added for those users who would like to uptake newer Oracle Linux versions.
At this time the following JDK/Oracle Linux versions are available:
| JDK Version | Oracle Linux Version(s) |
| ----------- | ------------------------------------------------- |
| JDK 24 | Oracle Linux 9 |
| JDK 21 | Oracle Linux 8 and Oracle Linux 9 |
| JDK 17 | Oracle Linux 8 |
| JDK 11 | Oracle Linux 8 \(*) |
| JDK 8 | Oracle Linux 8 \(*) |
(\*) Oracle Linux 7 reached the end of Premier support in December of 2024.
## 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. `24` , `21`, `17`, `11`, `11-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.0.3`, `17.0.12`, `11.0.22 `,`11.0.17-oraclelinux8`, `21.0.2-oraclelinux9` 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/21/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 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).