Java-Installation auf dem MacBook M1 ohne ‚Bad CPU type‘-Fehler

Stoßen Sie auf den ‚Bad CPU type in executable‘-Fehler bei der Java-Installation auf Ihrem MacBook Air M1? Wir zeigen Ihnen, wie Sie dieses Problem mühelos beheben können.

Aufgrund der ARM64-Architektur des neuen M1-Chips von Apple erhalten Sie beim Versuch, den Befehl „java -version“ auszuführen, möglicherweise diese Fehlermeldung:

            -bash: ./java: Bad CPU type in executable

Das Problem entsteht, weil die heruntergeladenen OpenJDK-Binärdateien für die x64-Architektur konzipiert sind – eine Architektur, die üblicherweise in Intel-Prozessoren verwendet wird, und daher nicht mit dem neuen M1-Chip kompatibel ist.

Lösung: ARM64-kompatible OpenJDK-Version finden

Um das Problem zu lösen, muss eine OpenJDK-Version genutzt werden, welche mit der ARM 64-Bit-Architektur kompatibel ist. Wir empfehlen Ihnen Azul Zulu OpenJDK-Builds, die auch Builds für die ARM 64-Bit-Architektur bereitstellen.

Nach dem Herunterladen und Entpacken des passenden Tar-Archivs können Sie den Java-Befehl ohne Probleme ausführen:

 Copy code
            $ curl -O https://cdn.azul.com/zulu/bin/zulu16.30.19-ca-jdk16.0.1-macosx_aarch64.tar.gz
            $ tar -xvf zulu16.30.19-ca-jdk16.0.1-macosx_aarch64.tar.gz 
            $ cd zulu16.30.19-ca-jdk16.0.1-macosx_aarch64/bin
            $ ./java -version

Das Ergebnis sollte nun folgendermaßen lauten:

            openjdk version "16.0.1" 2021-04-20
            OpenJDK Runtime Environment Zulu16.30+19-CA (build 16.0.1+9)
            OpenJDK 64-Bit Server VM Zulu16.30+19-CA (build 16.0.1+9, mixed mode)

Zusatzhinweis: Rosetta 2

Nachdem Sie Java erfolgreich installiert haben, läuft im Hintergrund „Rosetta 2“. Diese kleine Anwendung ermöglicht das Ausführen von Software, die ursprünglich für die Intel x64-Architektur auf Apple-Chips-Macs entwickelt wurde. Weitere Informationen hierzu finden Sie im Apple Support-Thread.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…