半年ほど Mac (M2) で Apache Directory Studio が使えない問題があり、半ば諦めかけていたのですが、やっと解消しました。
そもそもの問題として、以下のメッセージが出力され、Apache Directory Studio が起動しない状況でした。
The JVM shared library “/Library/Java/JavaVirtualMachines/temurin-20.jdk/Contents/Home/bin/../lib/server/libjvm.dylib”
does not contain the JNI_CreateJavaVM symbol.
確認すると/Library/Java/JavaVirtualMachines/temurin-20.jdk/Contents/Home/bin/../lib/server/libjvm.dylib
は存在しており、パスなどの問題は特にないように思えます。
myadmin@mac-mini ~ % ls -l /Library/Java/JavaVirtualMachines/temurin-20.jdk/Contents/Home/bin/../lib/server/libjvm.dylib
-rw-r--r-- 1 root wheel 17024576 3 22 2023 /Library/Java/JavaVirtualMachines/temurin-20.jdk/Contents/Home/bin/../lib/server/libjvm.dylib
となると Java と Apache Directory Studio の何かが一致していないと思われます。バージョン?何かの相性?バグ?など考え、Java のバージョンを変えたりしましたが、状況に変化がないので Apache Directory Studio はもう使えないと思い放置していました。
以下はこの問題の解消方法です。
まず、Apache Directory Studio の Mac 版のダウンロードリンクは以下となっており、この中に AdoptOpenJDK へのリンクも含まれています。
https://directory.apache.org/studio/download/download-macosx.html
Apache Directory Studio はそのままダウンロードすれば良いです。Mac で AdoptOpenJDK のダウンロードリンクをクリックすると自動的に aarch64 版の Java のダウンロードリンクになります。問題のある状況ではこの aarch64 版 Java を使用していました。
解消方法として、aarch64 版 Javaではなく、x64 版 Java をダウンロードしてインストールします。
https://adoptium.net/temurin/releases/?os=mac&arch=x64&package=jdk
これで Mac (M2) で Apache Directory Studio が問題なく利用できるようになると思います。
おそらくですが、この問題は Java の問題ではなく Apache Directory Studio の Arm 対応ができていないことによる問題だと思います。確かによく見ると「macOS version 10.10 (Yosemite) or later.」と書かれており、そういうことなんだろうなと思いました。
私はよく LDAP を利用するのですが、LDAP は CLI では LDIF を使用して設定であるものの、大量の属性がある中で俯瞰的に CLI でメンテナンスするのは少し無理があります。もちろん LDIF を使用する方が便利な場合もたくさんあります。Apache Directory Studio は純粋な LDAP ブラウザであり、LDAP コマンドをそのまま GUI にしたイメージなので、システム開発・設計の時点では Apache Directory Studio を重宝しています。Apache Directory Studio 自体の開発が止まってしまわないか心配はしています。
最後に参考として、Mac の Apache Directory Studio では以下のファイルに Java のパスなどが設定されており、トラブルシュートなどで変更が可能となっています。
/Applications/ApacheDirectoryStudio.app/Contents/Info.plist