Поиск по сайту:

[Исправлено] Неправильный тип процессора в исполняемом файле — установка Java на MacBook


Недавно я получил новый MacBook Air M1, и первое, что я хотел установить, это Java. Итак, я скачал tar-файл OpenJDK, распаковал его и попытался запустить команду «java -version», но выдал ошибку:

-bash: ./java: неверный тип процессора в исполняемом файле

Это было что-то новое для меня, я так долго работал на Java и Mac OS и никогда не видел такой ошибки. После некоторых онлайн-поисков и отладки я обнаружил, что это происходит потому, что новый чип MacBook M1 использует архитектуру ARM64, а двоичные файлы OpenJDK, загруженные с сайта JDK, созданы для архитектуры x64, которая используется процессорами Intel.

Исправление для -bash: ./java: неверный тип процессора в исполняемом файле

После того, как проблема была выявлена, решение было простым. Все, что мне нужно было найти реализацию OpenJDK, поддерживающую архитектуру ARM64. После некоторых поисков я попал на страницу сборки Azul Zulu OpenJDK, где была сборка с 64-битной архитектурой ARM.

Я скачал tar-файл, распаковал его и запустил команду java, и все заработало нормально.

$ 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
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)
$

Заключение

Для меня это был первый опыт «плохого типа процессора в исполняемом файле». Но, если вы здесь, значит, вы тоже сталкиваетесь с этим. Это может быть Java или любое другое программное обеспечение. Решение состоит в том, чтобы найти ARM 64- построение программного обеспечения на основе битовой архитектуры, и все будет в порядке.

Розетта 2

После того, как я закончил настройку Java, я узнал, что мы также можем установить «Rosetta 2». Эта крошечная утилита работает в фоновом режиме и позволяет нам запускать программное обеспечение, созданное для архитектуры Intel x64, на процессорах Apple Mac. Читать подробнее в этой ветке службы поддержки Apple.