Linux Java Runtime Environment Review
# Debian/Ubuntu sudo apt install openjdk-17-jre-headless sudo yum install java-17-openjdk-headless
: Install matching or newer JRE version:
# Check JAR's required version javap -verbose MyClass.class | grep "major version" # 52 = Java 8, 55 = Java 11, 61 = Java 17, 65 = Java 21 Minimal Dockerfile using Alpine + OpenJDK JRE : linux java runtime environment
openjdk version "17.0.9" 2023-10-17 OpenJDK Runtime Environment (build 17.0.9+9-Debian-1) OpenJDK 64-Bit Server VM (build 17.0.9+9-Debian-1, mixed mode, sharing) # Fedora (dnf) sudo dnf install java-17-openjdk RHEL / CentOS 7+ (yum/dnf) sudo yum install java-17-openjdk Minimal JRE (headless – no GUI dependencies) sudo yum install java-17-openjdk-headless 3.3 Arch Linux / Manjaro sudo pacman -S jre-openjdk 3.4 Alpine Linux (minimal containers) apk add openjdk17-jre 4. Installing from Third-Party Repos (Adoptium / Temurin) Eclipse Adoptium (formerly AdoptOpenJDK) provides up-to-date LTS releases. Using apt (Debian/Ubuntu): # Install prerequisites sudo apt install wget gnupg Import Adoptium GPG key wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null Add repository echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
# Reduce heap size java -Xmx256m -jar app.jar free -h 10.3 "No X11 DISPLAY variable" (headless GUI error) Fix : Run in headless mode: COPY --chown=appuser:appuser myapp
java -Djava.awt.headless=true -jar app.jar Fix :
# Search for java binary find /usr -name java -type f 2>/dev/null export PATH=$PATH:/usr/lib/jvm/java-17-openjdk/bin 10.2 "Error: Could not create the Java Virtual Machine" Cause : Insufficient memory or invalid JVM flags. COPY --chown=appuser:appuser myapp.jar /app/
COPY --chown=appuser:appuser myapp.jar /app/