Linux (Ubuntu)

Übersicht

Dieses Skript installiert automatisch Java 25 auf Ubuntu mithilfe des offiziellen APT-Repositorys.

Download

Voraussetzungen

Unterstützte Systeme:

  • Ubuntu (alle aktuell unterstützten Versionen)

Ausführung:

sudo ./install_java25_ubuntu.sh

Was das Skript macht

1. Alte Java-Pakete entfernen

Das Skript entfernt alle vorhandenen Java-Installationen:

# Find all installed Java packages
dpkg-query -W -f='${Package}\n' 2>/dev/null \
  | grep -E '^(default-jdk|default-jre|openjdk-[0-9]+-(jdk|jre)|temurin-[0-9]+-jdk|adoptopenjdk-[0-9]+-jdk|oracle-java[0-9]+-installer|msopenjdk-[0-9]+)$'

# Purge all found Java packages
apt-get purge -y "${packages[@]}"
apt-get autoremove -y --purge

Das Skript entfernt auch übrig gebliebene Java-Verzeichnisse:

# Clean up Java directories
for dir in /usr/lib/jvm /opt/java /usr/local/java; do
  if [[ -d "${dir}" ]]; then
    find "${dir}" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
done

2. Adoptium-Repository konfigurieren

Das Skript fügt das offizielle Repository zu deinem System hinzu:

# Download and install the Adoptium GPG key
curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public \
  | gpg --dearmor --yes -o /etc/apt/keyrings/adoptium.gpg

# Add the Adoptium repository
cat > /etc/apt/sources.list.d/adoptium.list <<EOF
deb [signed-by=/etc/apt/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb ${UBUNTU_CODENAME} main
EOF

# Update package lists
apt-get update -y

3. Java installieren

Das Skript installiert Java 25

# Install Temurin JDK 25
apt-get install -y --no-install-recommends temurin-25-jdk

4. Umgebungsvariablen konfigurieren

Das Skript richtet JAVA_HOME ein und fügt Java zu deinem PATH hinzu:

# Find the installed Java location
javac_bin="$(readlink -f "$(command -v javac)")"
detected_java_home="$(dirname "$(dirname "${javac_bin}")")"

# Create a stable symlink at /opt/java/jdk-25
ln -sfn "${detected_java_home}" /opt/java/jdk-25

# Create profile script for all users
cat > /etc/profile.d/java-25.sh <<EOF
export JAVA_HOME="/opt/java/jdk-25"
case ":\$PATH:" in
  *":\$JAVA_HOME/bin:"*) ;;
  *) export PATH="\$JAVA_HOME/bin:\$PATH" ;;
esac
EOF

Das Skript aktualisiert auch das Alternative-System:

# Set Java 25 as the default Java
update-alternatives --set java /opt/java/jdk-25/bin/java
update-alternatives --set javac /opt/java/jdk-25/bin/javac

5. Installation überprüfen

Abschließend testet das Skript, ob Java korrekt funktioniert:

# Create a test Java file
cat > "${temp_dir}/HelloJava25.java" <<'EOF'
public class HelloJava25 {
    public static void main(String[] args) {
        System.out.println("Java 25 smoke test");
    }
}
EOF

# Compile and run the test
"${JAVA_HOME}/bin/javac" "${temp_dir}/HelloJava25.java"
output="$("${JAVA_HOME}/bin/java" -cp "${temp_dir}" HelloJava25)"

# Verify output
if [[ "${output}" != "Java 25 smoke test" ]]; then
  echo "The Java 25 smoke test failed."
  exit 1
fi

# Show installed versions
java -version
javac -version

Fehlerbehebung

Zugriff verweigert:

Führe das Skript mit sudo aus: sudo ./install_java25_ubuntu.sh

Skript unterstützt nur Ubuntu:

Dieses Skript ist für Ubuntu konzipiert. Für andere Distributionen musst du die Repository-Konfiguration anpassen.

Repository-Verbindung fehlgeschlagen:

Überprüfe deine Internetverbindung und stelle sicher, dass du packages.adoptium.net erreichen kannst.

Umgebungsvariablen nicht gesetzt:

Melde dich ab und wieder an, oder lade das Profil manuell:

source /etc/profile.d/java-25.sh
Smoke-Test fehlgeschlagen:

Führe das Skript erneut aus oder überprüfe die Fehlermeldung für Details.