手当たり次第に書くんだ

飽きっぽいのは本能

Mac で Apache Directory Studio を x64 Java で起動する方法 – Apple Silicon の回避策

Apple Silicon の Mac で Apache Directory Studio が起動しない問題は、x64 版 Java を使うことで解消できる場合があります。この記事では、実際に遭遇した JNI_CreateJavaVM 関連エラーと、回避手順を整理します。

背景や LDAP / LDAPS ツールとしての位置づけは別記事で整理しているため、この記事では実際の起動問題と対処に絞ります。

発生していたエラー

Mac mini M2 で 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.

この時点では、libjvm.dylib のファイル自体は存在していました。つまり、単純なファイル欠落ではなく、Apache Directory Studio と Java 実行環境の組み合わせが合っていない状態でした。

確認したこと

まず、エラーに表示されている libjvm.dylib が存在するかを確認しました。

ls -l /Library/Java/JavaVirtualMachines/temurin-20.jdk/Contents/Home/bin/../lib/server/libjvm.dylib

ファイルが存在する場合、次に見るべきなのは Java のバージョンだけではなく、JDK のアーキテクチャです。Apple Silicon Mac では aarch64 版 Java が自然に見えますが、アプリ側が x64 前提で動いている場合は、ここで噛み合わないことがあります。

確認点内容
JDK のアーキテクチャaarch64 版か x64 版か
Apache Directory Studio の実行形式Apple Silicon ネイティブか x64 前提か
Java パスアプリがどの JDK を参照しているか
Rosetta 2x64 アプリを Apple Silicon Mac で動かす前提があるか

解消方法

この環境では、aarch64 版 Java ではなく x64 版 Java をインストールすることで Apache Directory Studio が起動できるようになりました。

  • Apache Directory Studio の macOS 版をインストールする
  • aarch64 版 Java で起動しない場合は x64 版 JDK をインストールする
  • 必要に応じて Rosetta 2 を有効にする
  • Apache Directory Studio を再起動する

Adoptium の Temurin JDK を使う場合は、macOS かつ x64 の JDK を選択します。Apple Silicon Mac でアクセスすると aarch64 版へ誘導されやすいため、アーキテクチャを意識して選ぶ必要があります。

Java パスを確認する

Apache Directory Studio がどの Java を参照しているかを確認したい場合は、アプリ内の Info.plist が手掛かりになります。

/Applications/ApacheDirectoryStudio.app/Contents/Info.plist

ここに Java の参照設定がある場合、インストールした JDK のパスと合っているかを確認します。ただし、アプリバンドル内のファイルを直接編集する場合は、更新や再インストールで戻る可能性があるため、恒久対応というよりトラブルシュート用と考えた方がよいです。

なぜ LDAP ブラウザが必要なのか

LDAP は CLI でも扱えます。LDIF や ldapsearch は自動化や運用に向いています。一方で、LDAP ツリー、OU、グループ、属性を俯瞰するには GUI の LDAP ブラウザが便利です。

特に Active Directory や OpenLDAP の設計段階では、DN の階層、属性の入り方、グループメンバーシップ、検索フィルタを目で確認できることに価値があります。Apache Directory Studio はその用途に合っています。

関連する注意点

Apache Directory Studio が起動できるようになっても、LDAPS 接続が成功するとは限りません。LDAPS では、接続先の DNS 名、証明書の CN / SAN、CA 証明書の信頼、ポート番号を別途確認する必要があります。

  • LDAP は通常 389/TCP、LDAPS は 636/TCP を使う
  • LDAPS では接続先名と証明書名の一致が重要になる
  • 内部 CA や自己署名 CA を使う場合は、クライアント側で信頼させる必要がある
  • GUI で見える問題と、証明書検証の問題を混同しない

まとめ

Apple Silicon Mac で Apache Directory Studio が起動しない場合、aarch64 版 Java が常に正解とは限りません。アプリ側が x64 前提で動いている場合、x64 版 Java を使うことで JNI_CreateJavaVM 関連のエラーを回避できることがあります。

LDAP / LDAPS の設計や確認では、CLI と GUI の両方を使い分けると見通しが良くなります。起動問題を解消した上で、LDAPS の証明書や DNS 名の確認は別の論点として切り分けるのがよいです。

参考
書籍
参考書籍

LDAP – 設定・管理・プログラミング

LDAP / OpenLDAP の設定、管理、連携を確認したい場合の参考書籍です。古い書籍のため、価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

参考

Mac で Apache Directory Studio を x64 Java で起動する方法 – Apple Silicon の回避策

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る