macOS¶
Übersicht¶
Dieses Skript lädt automatisch Java 25 herunter und installiert es auf macOS. Es funktioniert sowohl auf Intel (x86_64) als auch auf Apple Silicon (ARM64) Macs.
Download¶
Voraussetzungen¶
Führe das Skript mit Administratorrechten aus:
sudo ./install_java25_macos.sh
Was das Skript macht¶
1. Alte Java-Installationen bereinigen¶
Das Skript entfernt alle vorhandenen Java-Installationen, um eine saubere Installation zu gewährleisten:
# Remove all Java Virtual Machines
if [[ -d /Library/Java/JavaVirtualMachines ]]; then
find /Library/Java/JavaVirtualMachines -mindepth 1 -maxdepth 1 -exec rm -rf {} +
fi
# Remove Java plugins and preferences
rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
rm -rf /Library/Java/Home
2. Java-Installer herunterladen¶
Das Skript erkennt die Architektur deines Macs und lädt den entsprechenden Java 25 Installer herunter:
# Detect architecture (Intel or Apple Silicon)
case "$(uname -m)" in
x86_64)
API_URL="${API_URL_X64}" # Intel Mac
;;
arm64)
API_URL="${API_URL_ARM64}" # Apple Silicon
;;
esac
# Download metadata from Adoptium API
curl -fsSL "${API_URL}" -o "${api_json}"
# Extract download URL and checksum from JSON
pkg_url="$(plutil -extract 0.binary.installer.link raw -o - "${api_json}")"
expected_checksum="$(plutil -extract 0.binary.installer.checksum raw -o - "${api_json}")"
# Download the installer package
curl -fL "${pkg_url}" -o "${PKG_FILE}"
# Verify the download integrity
actual_checksum="$(shasum -a 256 "${PKG_FILE}" | awk '{print $1}')"
if [[ "${actual_checksum}" != "${expected_checksum}" ]]; then
echo "Downloaded installer checksum mismatch."
exit 1
fi
3. Java installieren¶
Das Installationspaket wird systemweit installiert:
installer -pkg "${PKG_FILE}" -target /
4. Umgebungsvariablen konfigurieren¶
Das Skript richtet JAVA_HOME ein und fügt Java zu deinem PATH hinzu:
# Detect where Java was installed
detected_java_home="$("/usr/libexec/java_home" -v "${JAVA_MAJOR}")"
# Create a stable symlink at /Library/Java/Home/jdk-25
ln -sfn "${detected_java_home}" "${JAVA_HOME_LINK}"
# Add Java to system PATH via /etc/paths.d/
printf '%s\n' "${JAVA_HOME_LINK}/bin" > "${PATHS_FILE}"
# Add JAVA_HOME to shell profiles (/etc/profile and /etc/zprofile)
# >>> java-25 managed >>>
export JAVA_HOME="/Library/Java/Home/jdk-25"
# <<< java-25 managed <<<
5. Installation überprüfen¶
Abschließend testet das Skript, ob Java korrekt funktioniert, indem es ein Testprogramm kompiliert und ausführt:
# 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_macos.sh- Prüfsumme stimmt nicht überein:
Netzwerkproblem oder beschädigter Download. Führe das Skript erneut aus.
- Nicht unterstützte Architektur:
Das Skript unterstützt nur Intel (x86_64) und Apple Silicon (arm64) Macs.
- Smoke-Test fehlgeschlagen:
Die Installation könnte beschädigt sein. Führe das Skript erneut aus oder überprüfe die Fehlermeldung.