Problem mit Flatpack-Version

Verschiebt das entpackte JDK nach /usr/local
sudo mv jdk-21.0.2 /usr/local/jdk-21

Registriert java im Alternatives-System
sudo update-alternatives --install /usr/bin/java java /usr/local/jdk-21/bin/java 1

Registriert javac im Alternatives-System
sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk-21/bin/javac 1

Wählt die Standardversion von java
sudo update-alternatives --config java

Wählt die Standardversion von javac
sudo update-alternatives --config javac

Prüft, ob Java 21 aktiv ist
java -version

Prüft, ob javac auf Version 21 zeigt
javac -version

Optional: Setzt JAVA_HOME systemweit

sudo tee /etc/profile.d/jdk21.sh > /dev/null <<EOF
export JAVA_HOME=/usr/local/jdk-21
export PATH=\$JAVA_HOME/bin:\$PATH
EOF

Rechte setzen (nicht zwingend +x, da beim Login gesourced wird)

sudo chown root:root /etc/profile.d/jdk21.sh
sudo chmod 644 /etc/profile.d/jdk21.sh

Aktiviert die Änderungen für die aktuelle Shell
source /etc/profile.d/jdk21.sh


Als Script…

install-jdk21.sh

#!/bin/bash
set -e

JDK_ARCHIVE="openjdk-21.0.2_linux-x64_bin.tar.gz"
JDK_DIR="jdk-21.0.2"
INSTALL_DIR="/usr/local/jdk-21"
PROFILE_SCRIPT="/etc/profile.d/jdk21.sh"

# Prüfen, ob Archiv vorhanden ist
if [ ! -f "$JDK_ARCHIVE" ]; then
  echo "❌ Fehler: $JDK_ARCHIVE nicht gefunden."
  exit 1
fi

echo "Entpacke JDK..."
tar -xvzf "$JDK_ARCHIVE"

echo "Verschiebe JDK nach $INSTALL_DIR..."
sudo mv "$JDK_DIR" "$INSTALL_DIR"

echo "Registriere java im Alternatives-System..."
sudo update-alternatives --install /usr/bin/java java "$INSTALL_DIR/bin/java" 1

echo "Registriere javac im Alternatives-System..."
sudo update-alternatives --install /usr/bin/javac javac "$INSTALL_DIR/bin/javac" 1

echo "Setze java und javac als Standard..."
sudo update-alternatives --set java "$INSTALL_DIR/bin/java"
sudo update-alternatives --set javac "$INSTALL_DIR/bin/javac"

echo "Prüfe Versionen..."
java -version
javac -version

echo "Setze JAVA_HOME systemweit..."
sudo tee "$PROFILE_SCRIPT" > /dev/null <<EOF
export JAVA_HOME=$INSTALL_DIR
export PATH=\$JAVA_HOME/bin:\$PATH
EOF

sudo chown root:root "$PROFILE_SCRIPT"
sudo chmod 644 "$PROFILE_SCRIPT"

echo "Lade Umgebungsvariablen..."
source "$PROFILE_SCRIPT"

echo "JDK 21 Installation abgeschlossen."

Speichern:
nano install-jdk21.sh

Ausführbar machen:
chmod +x install-jdk21.sh

Speichern:
./install-jdk21.sh