Java/JDK für die Apple Silicon-Chips

Lesezeit: 8 Minuten

Benutzer-Avatar
Thar

Wird es eine Sonderfreigabe von geben müssen OpenJDK das Neue zu unterstützen Apple Silizium Chips?

Ich sehe, dass es derzeit Downloads des JDK für macOS/OS X gibt, aber diese scheinen nur für x86-Prozessoren zu sein. Ist das korrekt? Wenn ja, wo kann ich eine Version von OpenJDK für M1 herunterladen?

  • Ich habe das YouTube-Video für die JDK-Installation verfolgt, youtube.com/watch?v=pZjGom2qTEA. Es funktioniert.

    – jrhamza

    24. Dezember 2020 um 18:54 Uhr


  • Native Apple/Arm64-Versionen sind jetzt verfügbar brewalso sollten Sie in der Lage sein, einfach zu tun brew install javavorausgesetzt, Sie installieren brew nativ ohne Verwendung von Rosetta 2.

    – Joshua Pinter

    17. Januar um 17:24 Uhr

Benutzer-Avatar
rzwitserloot

Ja.

Auf dieser Seite: Übernehmen Sie die neuesten Versionen von OpenJDK Sie können „macOS“ aus der Dropdown-Liste „Betriebssystem“ und dann aus „Architektur“ auswählen, es ist derzeit nur x64, aber bald sollte es AArch64 oder ARM64 geben (das sind normalerweise die Shortcodes für 64-Bit-ARM). Möglicherweise, da Apple zweifellos eine Reihe von Erweiterungen in seine M1-Designs integriert hat und Apple seine eigenen bekommt.

Wenn Sie stattdessen das Betriebssystem auf „beliebig“ lassen, werden Sie feststellen, dass aarch64 darin enthalten ist, und dies bringt Sie zu einer Linux-Version für ARM-Prozessoren. Das wird (wahrscheinlich) nicht unter macOS auf M1-Hardware laufen, aber das sind 95 % der Arbeit, die bereits erledigt ist.

Also: Es ist noch nicht da, aber beachten Sie, dass JDKs für ARM seit mehr als einem Jahrzehnt verfügbar sind, und während JDK 15 die Unterstützung für eine Reihe exotischer Betriebssystem/Architektur-Kombinationen (wie z Solaris) ist die ARM-Entwicklung immer zumindest teilweise relevant geblieben (auch wenn es sich bisher hauptsächlich um ein kommerzielles Lizenzangebot von Oracle handelt). Das heißt: Es sollte keine herkulische Anstrengung sein, ein adoptopenjdk-Release zu erstellen, das nativ auf M1s läuft, also wird es vermutlich passieren. Aber es ist eine Open-Source-Bemühung, also wenn Sie besorgt sind, lesen Sie auf jeden Fall nach und leisten Sie einen Beitrag 🙂

Apple hat bis zum 10. November 2020 keinerlei Details zu dieser Architektur bekannt gegeben, es sei denn, Sie haben eine Entwicklungskit-Box dafür gekauft (a Mac Mini mit einem A14-Chip, der kein M1-Chip ist, aber nah genug, denke ich) und einen großen unterschrieben NDA.

In der Regel laufen Open-Source-Projekte so schnell wie möglich in die entgegengesetzte Richtung, wenn Sie mit einem NDA herumschwenken. Wenn Ihnen dieser Zustand also nicht gefällt, halte ich es nicht für klug, sich bei der Übernahme von openjdk oder anderen Paketanbietern und Open Source zu beschweren Projekte dazu 🙂

Glücklicherweise ist es jetzt raus und ein NDA ist nicht mehr erforderlich. Ich gehe davon aus, dass der ARM-Zweig des OpenJDK-Quellcodes + die bereits für die macOS x64-Version vorhandenen macOS-Bits ziemlich einfach kombiniert werden können, sobald jemand, der mit dem OpenJDK-Quellcode vertraut ist, ein M1-basiertes macOS-System zum Testen hat , was bedeuten sollte, dass eine Version von adoptopenjdk macos-aarch64 innerhalb des Monats hier sein sollte.

Aber Open-Source. Du hast sie nicht bezahlt, du hast keinen Vertrag, und sie sind es dir nicht schuldig. Spenden Sie für die Bemühungen oder tragen Sie eine Pull-Anfrage bei, wenn Sie möchten, dass es schneller geht.

AKTUALISIEREN:

  • M1 OpenJDK-Builds von Azul
  • Microsofts (ja, wirklich) GitHub-Quell-Repository für einen Early-Access-OpenJDK16-Build für macOS auf AArch64. Beachten Sie, dass Microsoft seit einiger Zeit am OpenJDK-Zweig von AArch64 (für ARM-basiertes Windows 10) arbeitet, was auf Folgendes zurückgeht: Ein Großteil der harten Arbeit wurde bereits geleistet.

  • Vielen Dank! , FYI bugs.openjdk.java.net/browse/JDK-8251280

    – Thar

    11. November 2020 um 14:21 Uhr


  • Das Ausführen von Gradle funktionierte nicht mit dem Vorschau-Build von Microsoft. Habe es hier gemeldet github.com/openjdk/aarch64-port/issues/8

    – Felipe Lima

    25. November 2020 um 5:49 Uhr

  • In diesem Post steht „bald“, aber es ist 9 Monate her und die Adopt-Links sind nicht hilfreicher als zu dem Zeitpunkt, als sie ursprünglich gepostet wurden. Das aarch64 Erklärung ist hilfreich, da es für die meisten M1-Benutzer nicht offensichtlich ist, dass diese Begriffe synonym sind, aber dieser erste Link ist immer noch nicht hilfreich und sollte bearbeitet werden, bis das Adoptium-Team M1-Artefakte produzieren kann.

    – Treff

    17. August 2021 um 16:07 Uhr

  • Bitte beachten Sie, dass das Projekt OpenJDK zu Eclipse Fondation umgezogen ist und die neue Website jetzt lautet: https://adoptium.net

    – jpmottin

    3. Dezember 2021 um 19:14 Uhr

  • “Soonish” ist endlich da. Das Adoptium-Projekt hat kürzlich sein erstes M1-Release für Java 17 veröffentlicht. adoptium.net/….

    – Treff

    17. Dezember 2021 um 3:05 Uhr


Benutzer-Avatar
tresf

Ein Befehlszeilenansatz (dank der Hausgemacht Team und die harte Arbeit von @vladimir-kempik und andere openjdk-Mitwirkende auf der JEP-391 Zweig)

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install OpenJDK
brew install openjdk

Überprüfen Sie, ob es installiert ist:

$(brew --prefix openjdk)/bin/java --version

Stellen Sie sicher, dass es sich um die arm64-Hardware handelt:

file $(brew --prefix openjdk)/bin/java
# /opt/homebrew/opt/openjdk/bin/java: Mach-O 64-bit executable arm64

Notiz: Um OpenJDK systemweit zu installieren, befolgen Sie die von Homebrew bereitgestellten Anweisungen auf dem Bildschirm.

  • das war die richtige Antwort

    – Mesqueeb

    13. November 2021 um 11:13 Uhr

  • das funktioniert auch für Java 11 ohne Probleme brew install openjdk@11 und file $(brew --prefix openjdk@11)/bin/java – Apple MacBook Pro 2021 – M1 Pro (10 Kerne) – Die Verwendung von Homebrew ist für mich die bevorzugte Option gegenüber anderen Ansätzen

    – Flohall

    9. Dezember 2021 um 10:35 Uhr


  • OpenJDK 17 ist die erste Java-Version, die offiziell die M1-Architektur unterstützt

    – Janos Vinceller

    6. Januar um 19:55 Uhr

  • $(brew –prefix openjdk)/bin/java –version. das funktioniert, aber java –version funktioniert nicht … Ich denke, ich muss das Java-Home einstellen, oder?

    – Herr A

    8. Januar um 4:38

  • @JustinFuruness wenn JAVA_HOME ist eine harte Anforderung, die Sie tun können export JAVA_HOME="$(brew --prefix openjdk)/libexec/openjdk.jdk/Contents/Home" obwohl brew info openjdk enthält Anweisungen zum Konfigurieren des Systems, um es zu finden, und zitiert: For the system Java wrappers to find this JDK, symlink it with... (Der genaue Befehl ist spezifisch für Ihr System und wird von Homebrew gedruckt).

    – Treff

    28. Januar um 3:10 Uhr


Benutzer-Avatar
Ming-Yee Iu

Azul bietet macOS ARM-Builds von OpenJDK auf ihrer Website im an Downloads Sektion. Ich habe sie zwar noch nicht ausprobiert, aber Azul sind langjährige JDK-Entwickler.

Sobald Sie das Azul JDK ausgepackt haben, müssen Sie darin herumwühlen, bis Sie das finden zulu-11.jdk Verzeichnis (vorausgesetzt, Sie haben JDK 11 heruntergeladen), in das Sie dann kopieren /Library/Java/JavaVirtualMachines.

  • Ich habe ihre .dmg heruntergeladen und es hat einfach funktioniert – kein Herumkopieren erforderlich

    – Renaud

    6. Februar 2021 um 0:09 Uhr

  • Die *.dmg-Version muss nicht kopiert werden, Sie können die *.zip-Version herunterladen

    – Omzer

    12. Februar 2021 um 14:27 Uhr


Benutzer-Avatar
Linh

brew install openjdk

In meinem Fall nach der Installation OpenJDK erfolgreich weiter MacBookAir (M1)das java Befehl hat immer noch nicht funktioniert. Ich habe es behoben

brew info openjdk

Dann gibt es einen Befehl wie

For the system Java wrappers to find this JDK, symlink it with
  sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

Führen Sie diesen Befehl aus und die java Befehl funktioniert.

Benutzer-Avatar
Boris Asanow

Sie können das Java JDK mit sdkman installieren (siehe sdkman installieren):

vim .sdkman/etc/config

Satz sdkman_rosetta2_compatible=false (sehen SDKMAN-Konfig)

Danach sehen Sie eine Liste der mit M1 kompatiblen JDKs:

sdk list java

================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 Azul Zulu     |     | 16.0.1       | zulu    |            | 16.0.1-zulu
               |     | 11.0.11      | zulu    |            | 11.0.11-zulu
               |     | 8.0.292      | zulu    |            | 8.0.292-zulu
 BellSoft      |     | 16.0.1       | librca  |            | 16.0.1-librca
               |     | 11.0.11      | librca  |            | 11.0.11-librca
               |     | 8.0.292      | librca  |            | 8.0.292-librca
 Java.net      |     | 18.ea.3      | open    |            | 18.ea.3-open
               |     | 18.ea.2      | open    |            | 18.ea.2-open
               |     | 18.ea.1      | open    |            | 18.ea.1-open
               |     | 17.ea.28     | open    |            | 17.ea.28-open
               |     | 17.ea.27     | open    |            | 17.ea.27-open
               |     | 17.ea.26     | open    |            | 17.ea.26-open
               |     | 17.ea.25     | open    |            | 17.ea.25-open
================================================================================

Wählen Sie eine aus und installieren Sie sie mit dem Befehl sdk install java IDENTIFIERdh:

sdk install java 8.0.292-zulu

  • “kompatibel” (in sdkman_rosetta2_compatbile) sieht aus wie ein Rechtschreibfehler (echter Tippfehler) von “kompatibel”. Bist du sicher, dass es so geschrieben wird?

    – Peter Mortensen

    15. November 2021 um 22:01 Uhr


  • @PeterMortensen du hast recht, das war ein Tippfehler in meiner Antwort, ich behebe es

    – Boris Asanow

    16. November 2021 um 13:03 Uhr

  • Vergessen Sie nicht, JAVA_HOME zu aktualisieren, z export JAVA_HOME=/Users/<username>/.sdkman/candidates/java/current

    – Linster

    30. Juni um 5:11 Uhr

Jetzt unterstützt OpenJDK 17 von Oracle den Apple M1-Chip. Der Stand der JEP391 ist geschlossen & geliefert.

Sie können den kostenlosen macOS/AArch64-Open-Source-Build des JDK, Version 17, von herunterladen offizielle Website.

  • “kompatibel” (in sdkman_rosetta2_compatbile) sieht aus wie ein Rechtschreibfehler (echter Tippfehler) von “kompatibel”. Bist du sicher, dass es so geschrieben wird?

    – Peter Mortensen

    15. November 2021 um 22:01 Uhr


  • @PeterMortensen du hast recht, das war ein Tippfehler in meiner Antwort, ich behebe es

    – Boris Asanow

    16. November 2021 um 13:03 Uhr

  • Vergessen Sie nicht, JAVA_HOME zu aktualisieren, z export JAVA_HOME=/Users/<username>/.sdkman/candidates/java/current

    – Linster

    30. Juni um 5:11 Uhr

Benutzer-Avatar
Peter Mortensen

Ich entwickle erfolgreich Java-Anwendungen auf dem neuen Apple M1 Chip mit Azul OpenJDK und NetBeans.

Aufbau:

  • zulu16.0.65-ea-jdk16.0.0-ea.24-macos_aarch64
  • NetBeans 12.1 und Maven.

  • Hallo, kann ich fragen, ob Jenkins gut funktioniert und wie Sie die Unterstützung für Maven erhalten haben? Vielen Dank

    – Lm

    3. Dezember 2020 um 18:34 Uhr


  • Hallo, es ist noch früh, und es gibt viele Open-Source-Pakete, die den Chip nicht unterstützen. Ich habe Jenkins derzeit nicht installiert, und die Maven-Pakete, die ich bisher ausprobiert habe, haben kein Problem dargestellt, zweifellos wird es einige geben, die dies tun werden. Ich bin derzeit wie die meisten Menschen nur auf der Suche;

    Benutzer14679771

    4. Dezember 2020 um 21:37 Uhr


  • Benutzt du Docker? Ich kann kein Azul OpenJDK-Docker-Image für arm64 finden.

    – jenglert

    10. Februar 2021 um 23:09 Uhr

  • Ich habe Docker nicht für die Entwicklungsumgebung verwendet.

    Benutzer14679771

    12. Februar 2021 um 2:00 Uhr


  • Wie kann ich nach der Installation von Azul OpenJDK eine jnlp-Datei ausführen? Scheint nicht möglich zu sein, da es keine Javaws-Binärdatei gibt?

    – genevisch

    4. März 2021 um 18:28 Uhr

1355570cookie-checkJava/JDK für die Apple Silicon-Chips

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy