Рубрики
Без рубрики

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

Если во время запуска или установки программного обеспечения в микросхеме Mac OS M1 возникает ошибка неправильного ввода процессора в исполняемый файл, это легко исправить с помощью сборки ARM64.

Автор оригинала: Pankaj Kumar.

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

-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 или любое другое программное обеспечение. Решение состоит в том, чтобы найти сборку программного обеспечения на основе 64-разрядной архитектуры ARM, и с вами все должно быть в порядке.

Розетта 2

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