Apache Directory Studio搭配OpenJDK 17启动报错:缺失JNI_CreateJavaVM符号
解决JVM共享库缺失JNI_CreateJavaVM符号问题
问题原因
Apache Directory Studio当前对Apple Silicon(arm64)架构的OpenJVM兼容性存在问题,arm64版本的libjvm.dylib未包含JNI_CreateJavaVM符号,导致启动失败。
解决步骤
1. 安装x86_64架构的OpenJDK 17
通过brew安装x86版本的Temurin 17:
arch -x86_64 brew install --cask temurin@17
也可以直接从Adoptium官网下载x86_64版本安装包,手动安装(注意不要覆盖已有的arm64 JVM)。
2. 修改Apache Directory Studio启动配置
- 找到brew安装的应用路径:
/Applications/ApacheDirectoryStudio.app - 右键点击应用,选择「显示包内容」
- 进入
Contents/Eclipse目录,编辑ApacheDirectoryStudio.ini文件 - 在文件开头添加以下两行(替换为你安装的x86_64 JVM实际路径):
-vm /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java
注:若x86版本JVM路径不同(比如命名为temurin-17-x86_64.jdk),请自行调整
3. 启用Rosetta 2兼容模式(可选)
若不想修改配置文件,可通过Rosetta 2运行应用:
- 右键点击
ApacheDirectoryStudio.app,选择「显示简介」 - 勾选「使用Rosetta打开」
- 重新启动应用,将自动以x86兼容模式运行,配合x86版本JVM即可正常启动。
验证符号存在性(可选)
用以下命令检查x86版本的libjvm.dylib是否包含目标符号:
nm -g /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/lib/server/libjvm.dylib | grep JNI_CreateJavaVM
输出包含JNI_CreateJavaVM则说明库文件正常。
内容的提问来源于stack exchange,提问作者Achini
相关产品推荐
相关产品推荐

