「[修正済み] 実行可能ファイルのCPU種別が不正です – MacBookにJavaをインストールする」
最近、MacBook Air M1を新しく手に入れました。そこで最初にインストールしたかったものはJavaでした。それで、OpenJDKのtarファイルをダウンロードし、展開してから「java -version」というコマンドを実行しようとしたところ、エラーが表示されました。
エラーメッセージです: ./java: 実行可能ファイル内のCPUタイプが無効です。
これは私にとって新しいものでした。長い間JavaとMac OSで働いてきましたが、このようなエラーは見たことがありませんでした。オンライン検索とデバッグを行った結果、新しいMacBook M1チップはARM64アーキテクチャを使用しており、JDKサイトからダウンロードしたOpenJDKバイナリは、インテルプロセッサによって使用されるx64アーキテクチャで構築されているため、このようなエラーが発生していることがわかりました。
「-bash: ./java: 実行可能ファイルのCPUタイプが不正です」というエラーメッセージの修正方法
問題が特定された後、解決策は簡単でした。私が必要としていたのは、ARM64アーキテクチャをサポートするOpenJDKの実装を見つけることでした。いくつかの検索の結果、私はAzul Zulu OpenJDKビルドのページにたどり着き、ARM 64ビットアーキテクチャのビルドがありました。
私は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)
$
結論
これは私にとって初めての「実行可能なプログラムのCPUタイプが不正」という経験でした。しかし、もしあなたがここにいるなら、あなたもこれに直面しているということです。それはJavaまたは他のソフトウェアかもしれません。解決策は、ARM 64ビットアーキテクチャをベースにしたソフトウェアのビルドを見つけることで、それで問題は解決するはずです。
ロゼッタ2
自分のJavaのセットアップが終わった後、”Rosetta 2″というものもインストールできることを知りました。この小さなユーティリティはバックグラウンドで動作し、Intel x64アーキテクチャに対応して作られたソフトウェアをAppleチップ搭載のMacで実行することができます。詳しくはこのAppleサポートスレッドをご覧ください。