diff --git a/.bazelrc b/.bazelrc
index 30229f7da7c..d4c91d10f55 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -23,6 +23,10 @@ build --define absl=1
# Fix the python version
build --@rules_python//python/config_settings:python_version=3.12
+# Fix the Java version
+build --java_language_version=21 # Version of the source files
+build --java_runtime_version=remotejdk_21 # Hermetic JRE
+
###############################################################################
# Per plaform options
###############################################################################
diff --git a/.github/workflows/amd64_macos_bazel.yml b/.github/workflows/amd64_macos_bazel.yml
index 6a431f70cd8..538cc0a58bf 100644
--- a/.github/workflows/amd64_macos_bazel.yml
+++ b/.github/workflows/amd64_macos_bazel.yml
@@ -33,11 +33,11 @@ jobs:
runs-on: macos-15-intel
steps:
- uses: actions/checkout@v6
- - name: Set Java to OpenJDK 17 (Temurin)
+ - name: Set Java to OpenJDK 21 (Temurin)
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Check mvn
run: mvn --version
- name: Setup Python
diff --git a/.github/workflows/amd64_windows_bazel.yml b/.github/workflows/amd64_windows_bazel.yml
index 1f06be32600..951a5c6358f 100644
--- a/.github/workflows/amd64_windows_bazel.yml
+++ b/.github/workflows/amd64_windows_bazel.yml
@@ -36,7 +36,7 @@ jobs:
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Check java
run: java -version
- name: Check mvn
diff --git a/.github/workflows/arm64_macos_bazel.yml b/.github/workflows/arm64_macos_bazel.yml
index 3a6ec458a82..31ff3d97c23 100644
--- a/.github/workflows/arm64_macos_bazel.yml
+++ b/.github/workflows/arm64_macos_bazel.yml
@@ -33,11 +33,11 @@ jobs:
runs-on: macos-latest # macos arm64 based runner
steps:
- uses: actions/checkout@v6
- - name: Set Java to OpenJDK 17 (Temurin)
+ - name: Set Java to OpenJDK 21 (Temurin)
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Check mvn
run: mvn --version
- name: Setup Python
diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml
index 4fbd6cd7708..f607b585a97 100644
--- a/.github/workflows/presubmit.yml
+++ b/.github/workflows/presubmit.yml
@@ -13,7 +13,7 @@ concurrency:
env:
PYTHON_VERSION: '3.12'
JAVA_DISTRIBUTION: 'temurin'
- JAVA_VERSION: '17'
+ JAVA_VERSION: '21'
jobs:
###############################################################################
@@ -33,10 +33,6 @@ jobs:
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v6
- - uses: actions/setup-java@v5
- with:
- distribution: ${{env.JAVA_DISTRIBUTION}}
- java-version: ${{env.JAVA_VERSION}}
- uses: actions/setup-python@v6
with:
python-version: ${{env.PYTHON_VERSION}}
diff --git a/bazel/docker/fedora/Dockerfile b/bazel/docker/fedora/Dockerfile
index 18a7504ae39..fc3cb001aa5 100644
--- a/bazel/docker/fedora/Dockerfile
+++ b/bazel/docker/fedora/Dockerfile
@@ -36,7 +36,7 @@ COPY . .
FROM devel AS build
RUN bazel version
-RUN bazel build --java_runtime_version=remotejdk_21 --config=ci //ortools/... //examples/...
+RUN bazel build --config=ci //ortools/... //examples/...
FROM build AS test
-RUN bazel test --java_runtime_version=remotejdk_21 --config=ci //ortools/... //examples/...
+RUN bazel test --config=ci //ortools/... //examples/...
diff --git a/bazel/docker/opensuse/Dockerfile b/bazel/docker/opensuse/Dockerfile
index 0b66dae1af7..6ef29b4101c 100644
--- a/bazel/docker/opensuse/Dockerfile
+++ b/bazel/docker/opensuse/Dockerfile
@@ -18,7 +18,7 @@ https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-
# Install Java JDK and Maven
RUN zypper refresh \
-&& zypper install -y java-17-openjdk-devel maven \
+&& zypper install -y java-21-openjdk-devel maven \
&& zypper clean -a
ENV PATH=/usr/share/maven/bin:$PATH
diff --git a/bazel/docker/rockylinux/Dockerfile b/bazel/docker/rockylinux/Dockerfile
index 5c1527194b9..9dc5663129b 100644
--- a/bazel/docker/rockylinux/Dockerfile
+++ b/bazel/docker/rockylinux/Dockerfile
@@ -22,7 +22,7 @@ https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-
# Install Java
RUN dnf -y update \
-&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all
ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
diff --git a/cmake/docker/alpine/java.Dockerfile b/cmake/docker/alpine/java.Dockerfile
index 967878f0dc8..127d6166d67 100644
--- a/cmake/docker/alpine/java.Dockerfile
+++ b/cmake/docker/alpine/java.Dockerfile
@@ -1,7 +1,7 @@
FROM ortools/cmake:alpine_swig AS env
-ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
-RUN apk add --no-cache openjdk8 maven
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
+RUN apk add --no-cache openjdk21 maven
FROM env AS devel
WORKDIR /home/project
diff --git a/cmake/docker/opensuse/java.Dockerfile b/cmake/docker/opensuse/java.Dockerfile
index 019acf1dd7a..ac3f18adabd 100644
--- a/cmake/docker/opensuse/java.Dockerfile
+++ b/cmake/docker/opensuse/java.Dockerfile
@@ -2,7 +2,7 @@ FROM ortools/cmake:opensuse_swig AS env
# Install Java JDK and Maven
RUN zypper refresh \
-&& zypper install -y java-17-openjdk-devel maven \
+&& zypper install -y java-21-openjdk-devel maven \
&& zypper clean -a
ENV PATH=/usr/share/maven/bin:$PATH
diff --git a/cmake/docker/rockylinux/java.Dockerfile b/cmake/docker/rockylinux/java.Dockerfile
index ee258b2aea9..f2b7bdfa8a7 100644
--- a/cmake/docker/rockylinux/java.Dockerfile
+++ b/cmake/docker/rockylinux/java.Dockerfile
@@ -1,11 +1,11 @@
FROM ortools/cmake:rockylinux_swig AS env
RUN dnf -y update \
-&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
-RUN alternatives --set java /usr/lib/jvm/java-11-openjdk-11.*.x86_64/bin/java
-ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk
+RUN alternatives --set java /usr/lib/jvm/java-21-openjdk-21.*.x86_64/bin/java
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
FROM env AS devel
WORKDIR /home/project
diff --git a/cmake/java.cmake b/cmake/java.cmake
index f899239a3c9..3d7ca0f260e 100644
--- a/cmake/java.cmake
+++ b/cmake/java.cmake
@@ -35,7 +35,7 @@ endif()
list(APPEND CMAKE_SWIG_FLAGS "-DOR_DLL=")
# Find Java and JNI
-find_package(Java 1.8 COMPONENTS Development REQUIRED)
+find_package(Java 21 COMPONENTS Development REQUIRED)
find_package(JNI REQUIRED)
# Find maven
diff --git a/cmake/samples/java/pom.xml b/cmake/samples/java/pom.xml
index f49edfa8ed0..33b4d3761e9 100644
--- a/cmake/samples/java/pom.xml
+++ b/cmake/samples/java/pom.xml
@@ -14,8 +14,8 @@
UTF-8
- 1.8
- 1.8
+ 21
+ 21
diff --git a/tools/docker/Makefile b/tools/docker/Makefile
index 2d7890551df..9ca7e6eaf02 100644
--- a/tools/docker/Makefile
+++ b/tools/docker/Makefile
@@ -118,7 +118,7 @@ help:
@echo -e "\t${BOLD}${RESET}: Language to build"
@echo -e "\t\t${BOLD}cpp${RESET} C++"
@echo -e "\t\t${BOLD}dotnet${RESET} .Net 8.0 wrappers"
- @echo -e "\t\t${BOLD}java${RESET} Java (JDK 8.0) wrappers"
+ @echo -e "\t\t${BOLD}java${RESET} Java (JDK 21) wrappers"
@echo -e "\t\t${BOLD}python${RESET} Python 3.9+ wrappers"
@echo
@echo -e "\te.g. 'make sh_amd64_ubuntu-22.04_cpp_build'"
diff --git a/tools/docker/images/almalinux-9.Dockerfile b/tools/docker/images/almalinux-9.Dockerfile
index cf1d51d85f6..1045181e3bc 100644
--- a/tools/docker/images/almalinux-9.Dockerfile
+++ b/tools/docker/images/almalinux-9.Dockerfile
@@ -38,7 +38,7 @@ RUN dotnet --info
# Install Java 8 SDK
RUN dnf -y update \
-&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
diff --git a/tools/docker/images/alpine-edge.Dockerfile b/tools/docker/images/alpine-edge.Dockerfile
index 9bb26f931ba..5b9dbb62fce 100644
--- a/tools/docker/images/alpine-edge.Dockerfile
+++ b/tools/docker/images/alpine-edge.Dockerfile
@@ -19,8 +19,8 @@ RUN apk add --no-cache dotnet8-sdk
RUN dotnet --info
# Install Java
-ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
-RUN apk add --no-cache openjdk8 maven
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
+RUN apk add --no-cache openjdk-21-jdk maven
# Install Python
RUN apk add --no-cache python3-dev py3-pip py3-wheel \
diff --git a/tools/docker/images/fedora-40.Dockerfile b/tools/docker/images/fedora-40.Dockerfile
index 7c487641d78..ea81195f98b 100644
--- a/tools/docker/images/fedora-40.Dockerfile
+++ b/tools/docker/images/fedora-40.Dockerfile
@@ -28,7 +28,7 @@ RUN dotnet --info
# Install Java
RUN dnf -y update \
-&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all
ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
diff --git a/tools/docker/images/fedora-41.Dockerfile b/tools/docker/images/fedora-41.Dockerfile
index cc95fe40182..0e1c1fd6ecb 100644
--- a/tools/docker/images/fedora-41.Dockerfile
+++ b/tools/docker/images/fedora-41.Dockerfile
@@ -30,7 +30,7 @@ RUN dotnet --info
# Install Java
RUN dnf -y update \
-&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all
ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
diff --git a/tools/docker/images/opensuse-leap.Dockerfile b/tools/docker/images/opensuse-leap.Dockerfile
index 52168a1c6af..6d14c74eacd 100644
--- a/tools/docker/images/opensuse-leap.Dockerfile
+++ b/tools/docker/images/opensuse-leap.Dockerfile
@@ -29,8 +29,8 @@ RUN wget -q "https://dot.net/v1/dotnet-install.sh" \
# Trigger first run experience by running arbitrary cmd
RUN dotnet --info
-# Install Java (openjdk-8)
-RUN zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel maven \
+# Install Java (openjdk-21)
+RUN zypper install -y java-21-openjdk java-21-openjdk-devel maven \
&& zypper clean -a
# Install Python
diff --git a/tools/docker/images/rockylinux-9.Dockerfile b/tools/docker/images/rockylinux-9.Dockerfile
index 431ef3e1a7a..07cfeeb366e 100644
--- a/tools/docker/images/rockylinux-9.Dockerfile
+++ b/tools/docker/images/rockylinux-9.Dockerfile
@@ -38,7 +38,7 @@ RUN dotnet --info
# Install Java 8 SDK
RUN dnf -y update \
-&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
diff --git a/tools/docker/images/ubuntu-20.04.Dockerfile b/tools/docker/images/ubuntu-20.04.Dockerfile
index 187e76077ed..dee2afbb668 100644
--- a/tools/docker/images/ubuntu-20.04.Dockerfile
+++ b/tools/docker/images/ubuntu-20.04.Dockerfile
@@ -39,12 +39,12 @@ RUN apt-get update -qq \
# Trigger first run experience by running arbitrary cmd
RUN dotnet --info
-# Install Java (openjdk-11)
+# Install Java (openjdk-21-jdk)
RUN apt-get update -qq \
-&& apt-get install -yq default-jdk maven \
+&& apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# Install Python
RUN apt-get update -qq \
diff --git a/tools/docker/images/ubuntu-22.04.Dockerfile b/tools/docker/images/ubuntu-22.04.Dockerfile
index cd063522a44..8cd01a015e4 100644
--- a/tools/docker/images/ubuntu-22.04.Dockerfile
+++ b/tools/docker/images/ubuntu-22.04.Dockerfile
@@ -37,12 +37,12 @@ RUN apt-get update -qq \
# Trigger first run experience by running arbitrary cmd
RUN dotnet --info
-# Install Java (openjdk-11)
+# Install Java (openjdk-21-jdk)
RUN apt-get update -qq \
-&& apt-get install -yq default-jdk maven \
+&& apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# Install Python
RUN apt-get update -qq \
diff --git a/tools/docker/images/ubuntu-24.04.Dockerfile b/tools/docker/images/ubuntu-24.04.Dockerfile
index 6cf39fa36e6..7e8d230287a 100644
--- a/tools/docker/images/ubuntu-24.04.Dockerfile
+++ b/tools/docker/images/ubuntu-24.04.Dockerfile
@@ -29,12 +29,12 @@ RUN apt-get update -qq \
# Trigger first run experience by running arbitrary cmd
RUN dotnet --info
-# Install Java (openjdk-11)
+# Install Java (openjdk-21-jdk)
RUN apt-get update -qq \
-&& apt-get install -yq default-jdk maven \
+&& apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# Install Python
RUN apt-get update -qq \
diff --git a/tools/docker/images/ubuntu-24.10.Dockerfile b/tools/docker/images/ubuntu-24.10.Dockerfile
index 5e6b972a16a..c80c806e1f8 100644
--- a/tools/docker/images/ubuntu-24.10.Dockerfile
+++ b/tools/docker/images/ubuntu-24.10.Dockerfile
@@ -29,12 +29,12 @@ RUN apt-get update -qq \
# Trigger first run experience by running arbitrary cmd
RUN dotnet --info
-# Install Java (openjdk-11)
+# Install Java (openjdk-21-jdk)
RUN apt-get update -qq \
-&& apt-get install -yq default-jdk maven \
+&& apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# Install Python
RUN apt-get update -qq \
diff --git a/tools/docker/test/almalinux-9/java.Dockerfile b/tools/docker/test/almalinux-9/java.Dockerfile
index 5f02daa062e..e9a7d6b03e6 100644
--- a/tools/docker/test/almalinux-9/java.Dockerfile
+++ b/tools/docker/test/almalinux-9/java.Dockerfile
@@ -13,7 +13,7 @@ RUN dnf -y update \
# Install Java 8 SDK
RUN dnf -y update \
-&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
#ENV JAVA_HOME=/usr/lib/jvm/java
diff --git a/tools/docker/test/alpine-edge/java.Dockerfile b/tools/docker/test/alpine-edge/java.Dockerfile
index 379e17bbe8c..4dac5c8fe2b 100644
--- a/tools/docker/test/alpine-edge/java.Dockerfile
+++ b/tools/docker/test/alpine-edge/java.Dockerfile
@@ -11,8 +11,8 @@ ENTRYPOINT ["/bin/sh", "-c"]
CMD ["/bin/sh"]
# Install Java
-ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
-RUN apk add --no-cache openjdk8 maven
+ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk
+RUN apk add --no-cache openjdk-21-jdk maven
WORKDIR /root
ADD or-tools_amd64_alpine-edge_java_v*.tar.gz .
diff --git a/tools/docker/test/fedora-40/java.Dockerfile b/tools/docker/test/fedora-40/java.Dockerfile
index deee30d267a..17b1d77b82b 100644
--- a/tools/docker/test/fedora-40/java.Dockerfile
+++ b/tools/docker/test/fedora-40/java.Dockerfile
@@ -10,7 +10,7 @@ RUN dnf -y update \
# Java Install
RUN dnf -y update \
-&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all
ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
diff --git a/tools/docker/test/fedora-41/java.Dockerfile b/tools/docker/test/fedora-41/java.Dockerfile
index 9d53bd87302..bde541fd0d7 100644
--- a/tools/docker/test/fedora-41/java.Dockerfile
+++ b/tools/docker/test/fedora-41/java.Dockerfile
@@ -10,7 +10,7 @@ RUN dnf -y update \
# Java Install
RUN dnf -y update \
-&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all
ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
diff --git a/tools/docker/test/opensuse-leap/java.Dockerfile b/tools/docker/test/opensuse-leap/java.Dockerfile
index 9fc3d8509fb..2dd586c71f4 100644
--- a/tools/docker/test/opensuse-leap/java.Dockerfile
+++ b/tools/docker/test/opensuse-leap/java.Dockerfile
@@ -13,7 +13,7 @@ ENTRYPOINT ["/usr/bin/bash", "-c"]
CMD ["/usr/bin/bash"]
# Java install (openjdk-8)
-RUN zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel maven \
+RUN zypper install -y java-21-openjdk java-21-openjdk-devel maven \
&& zypper clean -a
WORKDIR /root
diff --git a/tools/docker/test/rockylinux-9/java.Dockerfile b/tools/docker/test/rockylinux-9/java.Dockerfile
index 4f7d5ed72a4..1e2987b95df 100644
--- a/tools/docker/test/rockylinux-9/java.Dockerfile
+++ b/tools/docker/test/rockylinux-9/java.Dockerfile
@@ -13,7 +13,7 @@ RUN dnf -y update \
# Install Java 8 SDK
RUN dnf -y update \
-&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
#ENV JAVA_HOME=/usr/lib/jvm/java
diff --git a/tools/docker/test/ubuntu-20.04/java.Dockerfile b/tools/docker/test/ubuntu-20.04/java.Dockerfile
index 4417b75c86c..6dce8316ba4 100644
--- a/tools/docker/test/ubuntu-20.04/java.Dockerfile
+++ b/tools/docker/test/ubuntu-20.04/java.Dockerfile
@@ -3,10 +3,10 @@ FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
-&& apt-get install -yq build-essential zlib1g-dev default-jdk maven \
+&& apt-get install -yq build-essential zlib1g-dev openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
#ENV TZ=America/Los_Angeles
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
diff --git a/tools/docker/test/ubuntu-22.04/java.Dockerfile b/tools/docker/test/ubuntu-22.04/java.Dockerfile
index f660b5fd6f4..61d28601bb3 100644
--- a/tools/docker/test/ubuntu-22.04/java.Dockerfile
+++ b/tools/docker/test/ubuntu-22.04/java.Dockerfile
@@ -9,11 +9,10 @@ RUN apt-get update -qq \
# Java/Maven Install
RUN apt-get update -qq \
-&& DEBIAN_FRONTEND=noninteractive apt-get install -yq \
- default-jdk maven \
+&& DEBIAN_FRONTEND=noninteractive apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
WORKDIR /root
ADD or-tools_amd64_ubuntu-22.04_java_v*.tar.gz .
diff --git a/tools/docker/test/ubuntu-24.04/java.Dockerfile b/tools/docker/test/ubuntu-24.04/java.Dockerfile
index 44777a9c7d6..f4c4a3f4989 100644
--- a/tools/docker/test/ubuntu-24.04/java.Dockerfile
+++ b/tools/docker/test/ubuntu-24.04/java.Dockerfile
@@ -9,11 +9,10 @@ RUN apt-get update -qq \
# Java/Maven Install
RUN apt-get update -qq \
-&& DEBIAN_FRONTEND=noninteractive apt-get install -yq \
- default-jdk maven \
+&& DEBIAN_FRONTEND=noninteractive apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
WORKDIR /root
ADD or-tools_amd64_ubuntu-24.04_java_v*.tar.gz .
diff --git a/tools/docker/test/ubuntu-24.10/java.Dockerfile b/tools/docker/test/ubuntu-24.10/java.Dockerfile
index d734164c18d..4fc22c465cc 100644
--- a/tools/docker/test/ubuntu-24.10/java.Dockerfile
+++ b/tools/docker/test/ubuntu-24.10/java.Dockerfile
@@ -9,11 +9,10 @@ RUN apt-get update -qq \
# Java/Maven Install
RUN apt-get update -qq \
-&& DEBIAN_FRONTEND=noninteractive apt-get install -yq \
- default-jdk maven \
+&& DEBIAN_FRONTEND=noninteractive apt-get install -yq openjdk-21-jdk maven \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-ENV JAVA_HOME=/usr/lib/jvm/default-java
+ENV JAVA_HOME=/usr/lib/jvm/java-openjdk
WORKDIR /root
ADD or-tools_amd64_ubuntu-24.10_java_v*.tar.gz .
diff --git a/tools/release/amd64.Dockerfile b/tools/release/amd64.Dockerfile
index 4a18f989f1d..1426dbb7db5 100644
--- a/tools/release/amd64.Dockerfile
+++ b/tools/release/amd64.Dockerfile
@@ -30,7 +30,7 @@ RUN dotnet --info
# Install Java 8 SDK
RUN dnf -y update \
-&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
ENV JAVA_HOME=/usr/lib/jvm/java
diff --git a/tools/release/arm64.Dockerfile b/tools/release/arm64.Dockerfile
index 27ec9547fb5..a97b8b6e644 100644
--- a/tools/release/arm64.Dockerfile
+++ b/tools/release/arm64.Dockerfile
@@ -35,7 +35,7 @@ RUN dotnet --info
# Install Java 8 SDK
RUN dnf -y update \
-&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
+&& dnf -y install java-21-openjdk java-21-openjdk-devel maven \
&& dnf clean all \
&& rm -rf /var/cache/dnf
ENV JAVA_HOME=/usr/lib/jvm/java