アプリインストール(openjdk16→zulu11) - M1 MacBook Air インストール覚書(19)

はじめに

いろいろとインストールをしましたが、openjdk は必要だと感じました。openjdk: Add support for Apple silicon by tresf · Pull Request #65670 · Homebrew/homebrew-core · GitHubで議論されていますが、Early Access の JDK-16 であれば、JEP 391: macOS/AArch64 Portのパッチでコンパイルができるようです。JEP-391 のパッチ自体は、時間的な問題で JDK-16 には間に合わず、JDK-17 には取り入れられらしいです。Homebrew 自体は、リリース前のバージョンを取り入れることはないので、JDK 16が利用可能になる 3/16 までは対応しないと思われます。

そんなわけで、こちらも野良 brew を作成してみたいと思います。とりあえず作ってみましたが、Finished up のコード署名の部分で以下のようなエラーが出ていました。

Error: Failed applying an ad-hoc signature to /opt/homebrew/Cellar/openjdk16-arm64/16/libexec/openjdk.jdk/Contents/MacOS/libjli.dylib
/usr/bin/sandbox-exec -f /private/tmp/homebrew20201219-4574-1lp45e4.sb nice ruby -W0 -I $LOAD_PATH -- /opt/homebrew/Library/Homebrew/postinstall.rb /opt/homebrew/Library/Taps/hkob/homebrew-m1-beta-brew/openjdk16-arm64.rb

とりあえず、java --version とすると動いてはいるようですが、他のもので試してみないとわかりませんね。libjli.dylib とリンクするときにエラーになるのかもしれません。

hkob@hM1Air ~ % java --version
openjdk 16 2021-03-16
OpenJDK Runtime Environment (build 16+14)
OpenJDK 64-Bit Server VM (build 16+14, mixed mode)

その後、logsim-evolution をインストールしてみましたが、以下のようなエラーが出ました。

hkob@hM1Air ~ % java -jar /Applications/logisim-evolution.jar
2020-12-19 18:20:05.194 java[15227:749724] JavaNativeFoundation: GetGlobalVM: Failed to locate @rpath/libjvm.dylib for JNI_GetCreatedJavaVMs(). A JVM must be loaded before calling this function.
2020-12-19 18:20:05.197 java[15227:749724] JavaNativeFoundation: GetGlobalVM: Failed to locate @rpath/libjvm.dylib for JNI_GetCreatedJavaVMs(). A JVM must be loaded before calling this function.
2020-12-19 18:20:05.458 java[15227:749724] +[AWTView keyboardInputSourceChanged:]: unrecognized selector sent to class 0x1036af9a0
2020-12-19 18:20:05.459 java[15227:749724] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[AWTView keyboardInputSourceChanged:]: unrecognized selector sent to class 0x1036af9a0'

(12/20 の朝に追記) 結局、原因を探るのが面倒になり、色々探っていたら cask-versions の方にAdd arm64 specific version / checksum / url for zulu13 by erinacio · Pull Request #10101 · Homebrew/homebrew-cask-versions · GitHubという pull request を見つけました。まだ取り入れられていませんが、野良 cask 作ってしまえば動きそうです。jdk15 は zulu でも対応できておらず、16ea はまだ zip 配布しかないようなので、LTS である zulu11-arm64 という cask を作りました。

この JDK のおかげで logisim-evolution は無事に起動しました。とりあえずしばらく zulu11 で運用してみます。

f:id:hkob:20201220092859p:plain
logisim-evolution

前の記事: teleport を使った仮想 KVM の活用 - M1 MacBook Air インストール覚書(18) - hkob’s blog

hkob.hatenablog.com