30
votes

Java / JDK pour la puce Apple M1?

Une version spéciale d'OpenJDK sera-t-elle nécessaire pour prendre en charge la nouvelle puce Apple M1?

Je vois qu'il existe actuellement des téléchargements du JDK pour macOS / OS X, mais ceux-ci ne semblent être que pour les processeurs x86. Est-ce exact? Si oui, où puis-je télécharger une version d'OpenJDK pour le M1?


0 commentaires

5 Réponses :


25
votes

Oui.

Sur cette page: AdoptOpenJDK Dernières versions, vous pouvez sélectionner `` macOS '' dans la liste déroulante `` Système d'exploitation '', puis dans `` Architecture '', ce n'est actuellement que x64, mais bientôt il devrait y avoir AArch64 ou ARM64 (ce sont généralement les shortcodes pour 64- bit ARM). Peut-être, comme Apple a sans aucun doute un tas d'extensions intégrées dans leurs conceptions M1, Apple obtient les siennes.

Si vous laissez à la place le système d'exploitation sur 'any', vous remarquerez que aarch64 est là, et cela vous amène à une version Linux pour les processeurs ARM. Cela (probablement) ne fonctionnera pas sur MacOS sur du matériel M1, mais c'est 95% du travail déjà effectué.

Donc: ce n'est pas encore là, mais notez que les JDK pour ARM sont disponibles depuis plus de dix ans, et bien que JDK15 ait abandonné la prise en charge d'un ensemble de combos OS / arch exotiques (comme solaris), ARM dev est toujours resté au moins partiellement pertinent ( même si jusqu'à présent il s'agit principalement d'une offre de licence commerciale oracle). C'est-à-dire: cela ne devrait pas être un effort herculéen pour créer une version adoptopenjdk qui s'exécute nativement sur M1, donc vraisemblablement, cela se produira. Mais c'est un effort open source, donc si vous êtes anxieux, par tous les moyens, lisez et contribuez :)

Apple n'a donné aucun détail sur cette architecture jusqu'au 10 novembre 2020, à moins que vous n'ayez acheté une boîte de devkit pour cela (un mini apple avec une puce A14, qui n'est pas une puce M1, mais assez proche je suppose), et signé un grand NDA.

En règle générale, les projets open source fonctionneront aussi vite que possible dans la direction opposée si vous agitez une NDA, donc si vous n'aimez pas cet état de fait, je ne pense pas qu'il soit sage de se plaindre d'adopteropenjdk ou d'autres packagers et open source projets à ce sujet :)

Heureusement, il est maintenant disponible et un NDA n'est plus nécessaire. Mon hypothèse est que la branche ARM du code source OpenJDK + les bits macos qui existent déjà pour la version macos-x64 peuvent être combinés assez facilement une fois que quelqu'un ayant une certaine familiarité avec le code source openjdk a un système macos basé sur M1 pour le tester, ce qui devrait signifier qu'une version adoptopenjdk macos-aarch64 devrait être disponible dans le mois.

Mais, open source. Vous ne les avez pas payés, vous n'avez pas de contrat et ils ne vous le doivent pas. Faites un don à l'effort ou envoyez une demande de tirage si vous voulez que cela aille plus vite.

MISE À JOUR:

  • Constructions M1 OpenJDK d'Azul
  • Le référentiel source github de Microsoft (oui, vraiment) pour une version OpenJDK16 à accès anticipé pour MacOS sur AArch64. Notez que Microsoft travaille depuis un certain temps sur la branche openjdk d'AArch64 (pour Windows 10 basé sur ARM), ce qui revient à: Une grande partie du travail acharné a déjà été effectuée.

3 commentaires

Merci! , FYI bugs.openjdk.java.net/browse/JDK-8251280


ce n'est qu'un JEP pour le moment.


L'exécution de gradle ne fonctionnait pas sur la version préliminaire de Microsoft. Je l'ai signalé ici github.com/openjdk/aarch64-port/issues/8



2
votes

Ce n'est pas seulement JEP-391. Il existe une branche de prévisualisation - https://github.com/openjdk/jdk-sandbox/tree/JEP-391-branch

on peut construire 16-ea en utilisant la compilation croisée sur intel mac ou directement sur arm mac et cela fonctionne bien


0 commentaires

1
votes

Microsoft / Azul semblent être les principaux moteurs de jep-391 en combinaison avec le port Windows (jep-388). Ils ont un référentiel github distinct qui a en fait une version EA pour macOS-aarch64.

Je ne sais pas quelle est la relation exacte avec le repo openjdk.


0 commentaires

7
votes

Azul propose des versions MacOS ARM d'OpenJDK sur son site Web dans la section Téléchargements. Cependant, je ne les ai pas encore essayés, mais Azul est un développeur JDK de longue date.

Mise à jour: une fois que vous avez déballé le JDK Azul, vous devez fouiller à l'intérieur jusqu'à ce que vous trouviez le répertoire zulu-11.jdk (en supposant que vous ayez téléchargé jdk11), que vous copiez ensuite dans /Library/Java/JavaVirtualMachines


0 commentaires

4
votes

Je développe avec succès des applications Java sur la nouvelle puce Apple M1 avec Azul OpenJDK et Netbeans.

Configuration: zulu16.0.65-ea-jdk16.0.0-ea.24-macos_aarch64 Netbeans 12.1 et maven.


2 commentaires

Salut, puis-je vous demander si Jenkins fonctionne correctement et comment avez-vous obtenu le support pour maven? Merci


Salut, Il est encore tôt, et il existe de nombreux packages open-source qui ne prennent pas en charge la puce. Je n'ai pas installé Jenkins pour le moment, et les packages maven que j'ai essayés jusqu'à présent n'ont présenté aucun problème, il y en aura sans aucun doute certains qui le feront. Je suis actuellement comme la plupart des gens qui explorent seulement;