starface-mail2fax/install-java21.sh

195 lines
5.3 KiB
Bash
Executable File

#!/bin/bash
#
# Java 21 JDK Installationsscript
# Für Debian/Ubuntu und andere Linux-Distributionen
#
set -e
# Farben
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo -e "${BLUE}========================================"
echo " Java 21 JDK Installation"
echo -e "========================================${NC}"
echo ""
# Prüfen ob Java 21 bereits installiert ist
if command -v javac &> /dev/null; then
JAVA_VERSION=$(javac -version 2>&1 | awk '{print $2}' | cut -d'.' -f1)
if [ "$JAVA_VERSION" == "21" ]; then
echo -e "${GREEN}Java 21 ist bereits installiert!${NC}"
javac -version
java -version
exit 0
else
echo -e "${YELLOW}Java $JAVA_VERSION gefunden, aber Java 21 wird benötigt${NC}"
fi
fi
# Betriebssystem erkennen
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
OS_LIKE=$ID_LIKE
else
OS=$(uname -s)
fi
echo -e "Erkanntes OS: ${GREEN}$OS${NC}"
echo ""
install_debian_ubuntu() {
echo -e "${YELLOW}Installiere Java 21 via apt...${NC}"
echo ""
# Prüfen ob openjdk-21-jdk verfügbar ist
if apt-cache show openjdk-21-jdk &> /dev/null; then
echo "OpenJDK 21 ist in den Repositories verfügbar"
sudo apt update
sudo apt install -y openjdk-21-jdk
else
echo "OpenJDK 21 nicht in Standard-Repos, verwende Adoptium/Temurin..."
# Adoptium Repository hinzufügen
sudo apt install -y wget apt-transport-https gnupg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install -y temurin-21-jdk
fi
}
install_fedora_rhel() {
echo -e "${YELLOW}Installiere Java 21 via dnf/yum...${NC}"
echo ""
if command -v dnf &> /dev/null; then
sudo dnf install -y java-21-openjdk-devel
else
sudo yum install -y java-21-openjdk-devel
fi
}
install_arch() {
echo -e "${YELLOW}Installiere Java 21 via pacman...${NC}"
echo ""
sudo pacman -S --noconfirm jdk21-openjdk
}
install_opensuse() {
echo -e "${YELLOW}Installiere Java 21 via zypper...${NC}"
echo ""
sudo zypper install -y java-21-openjdk-devel
}
install_manual() {
echo -e "${YELLOW}Manuelle Installation von Eclipse Temurin JDK 21...${NC}"
echo ""
ARCH=$(uname -m)
case $ARCH in
x86_64)
JDK_ARCH="x64"
;;
aarch64)
JDK_ARCH="aarch64"
;;
*)
echo -e "${RED}Nicht unterstützte Architektur: $ARCH${NC}"
exit 1
;;
esac
JDK_URL="https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_${JDK_ARCH}_linux_hotspot_21.0.2_13.tar.gz"
INSTALL_DIR="/opt/java"
echo "Lade JDK herunter..."
wget -q --show-progress -O /tmp/openjdk21.tar.gz "$JDK_URL"
echo "Entpacke nach $INSTALL_DIR..."
sudo mkdir -p "$INSTALL_DIR"
sudo tar -xzf /tmp/openjdk21.tar.gz -C "$INSTALL_DIR"
rm /tmp/openjdk21.tar.gz
JDK_DIR=$(ls -d $INSTALL_DIR/jdk-21* | head -1)
echo "Erstelle Symlinks..."
sudo ln -sf "$JDK_DIR/bin/java" /usr/local/bin/java
sudo ln -sf "$JDK_DIR/bin/javac" /usr/local/bin/javac
sudo ln -sf "$JDK_DIR/bin/jar" /usr/local/bin/jar
# JAVA_HOME setzen
echo ""
echo -e "${YELLOW}Füge JAVA_HOME zu ~/.bashrc hinzu...${NC}"
echo "" >> ~/.bashrc
echo "# Java 21" >> ~/.bashrc
echo "export JAVA_HOME=$JDK_DIR" >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
export JAVA_HOME="$JDK_DIR"
export PATH="$JAVA_HOME/bin:$PATH"
}
# Installation basierend auf OS
case $OS in
debian|ubuntu|linuxmint|pop)
install_debian_ubuntu
;;
fedora|rhel|centos|rocky|almalinux)
install_fedora_rhel
;;
arch|manjaro|endeavouros)
install_arch
;;
opensuse*|sles)
install_opensuse
;;
*)
# Prüfe ob debian-basiert
if [[ "$OS_LIKE" == *"debian"* ]]; then
install_debian_ubuntu
elif [[ "$OS_LIKE" == *"rhel"* ]] || [[ "$OS_LIKE" == *"fedora"* ]]; then
install_fedora_rhel
elif [[ "$OS_LIKE" == *"arch"* ]]; then
install_arch
else
echo -e "${YELLOW}Unbekanntes OS, versuche manuelle Installation...${NC}"
install_manual
fi
;;
esac
echo ""
echo -e "${BLUE}========================================"
echo " Installation abgeschlossen!"
echo -e "========================================${NC}"
echo ""
# Verifizieren
if command -v javac &> /dev/null; then
echo -e "${GREEN}Java Version:${NC}"
java -version
echo ""
echo -e "${GREEN}Java Compiler:${NC}"
javac -version
echo ""
echo -e "${GREEN}Du kannst jetzt das Modul bauen:${NC}"
echo " cd v8-9-10 && ./build.sh"
else
echo -e "${RED}Installation fehlgeschlagen. Bitte manuell installieren.${NC}"
echo ""
echo "Manuelle Installation:"
echo " 1. Lade JDK 21 von https://adoptium.net herunter"
echo " 2. Entpacke nach /opt/java/"
echo " 3. Füge zu PATH hinzu: export PATH=/opt/java/jdk-21/bin:\$PATH"
exit 1
fi