Apache Directory Studio 在 Apple M1 Silicon 上。

12
我在苹果silicon MBP M1 Max上运行Apache Directory Studio时遇到了问题。
错误:
2021-12-03 12:42:07.497 ApacheDirectoryStudio[5675:42763] Error loading /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/MacOS/libjli.dylib: 
 dlopen(/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/MacOS/libjli.dylib, 0x0109): 
 tried: '/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/MacOS/libjli.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')),
  '/usr/lib/libjli.dylib' (no such file)

看起来 Homebrew 有 ApacheDirectoryStudio x86_64 版本,但 Java 是 arm64

请帮忙。


使用官方的JDK而不是Homebrew。 - Thorbjørn Ravn Andersen
7个回答

37

我能够通过安装适用于x86_64的Java来运行ApacheDirectoryStudio。在aarch64(Apple M1)架构上运行它需要使用Rosetta 2。

要通过Homebrew安装x86_64版本的Java JDK,可以使用以下命令:

arch -x86_64 brew install oracle-jdk

使用的版本:

  • ApacheDirectoryStudio: 2.0.0.v20210717-M17
  • Oracle JDK: 17.0.2

  • ApacheDirectoryStudio:2.0.0.v20210717-M17
  • Oracle JDK:17.0.2

1
到目前为止,这似乎运行得非常好。您还可以使用Homebrew安装ApacheDirectoryStudio,命令为brew install apache-directory-studio - q0rban
2
不错!安装oracle-jdk,然后根据https://dev59.com/fV8e5IYBdhLWcg3wcJ8q#33477302编辑Info.plist。这是唯一对我有效的解决方案。 - moritz.vieli
我尝试了这种方法,并按照moritz.vieli的建议修改了info.plist,但对我没有用。我收到了这个错误:“JVM共享库“/opt/homebrew/Cellar/openjdk/19/libexec/openjdk.jdk/Contents/Home/bin/../lib/server/libjvm.dylib”不包含JNI_CreateJavaVM符号。”有什么想法吗? - Alex
在 Mac M1 上运行良好。谢谢! - Peter Edwards
请确保您安装的是Oracle JDK的x86_64版本。 - undefined

5

目前似乎没有可用的工作版本。 不过,您可以通过安装此处提供的新 M1 版本的 Eclipse 来获取一个可工作的版本:

https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2021-12/R/eclipse-java-2021-12-R-macosx-cocoa-aarch64.dmg]

然后,在 Apache Directory Studio 下载页面的底部,有一个链接提供如何将目录工作室插件加载到 Eclipse 的说明。

这个方法很好用。(我使用的是 Java 17,但据我所知,它应该适用于 11 及以上的任何 Java 版本)。


2

您可以修改 Info.plist 的内容。

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

该文件包含以下已注释的内容:
      <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
                or add a VM found via $/usr/libexec/java_home -V
            <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java</string>
            <string>-vm</string><string>/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home/bin/java</string>
        -->

取消注释此行,将路径更改为您已安装的JDK路径。


1
最新版本的Apache Directory Studio至少需要Java 11。但即使如此,在M1上也无济于事,Eclipse无法运行,出现了“缺失符号”的旧问题——实际上该符号是存在的。
多年来,Eclipse在所有平台上都有这个问题。
Java的架构并不重要。使用Rosetta2,英特尔版本可以正常运行。请记住,Java是与架构无关的。只要JVM运行,Java应用程序就会运行。
您可以通过评论我的错误报告来鼓励他们:

https://issues.apache.org/jira/projects/DIRSTUDIO/issues/DIRSTUDIO-1293

有一个针对M1的Eclipse RC版本。目前还不清楚Apache Directory Studio团队需要多长时间来适配它。

谢谢您的回答。我已经在我的Mac上安装了Rosetta2,但是在“Apache Directory Studio”信息中没有看到“使用Rosetta打开”的选项。您知道如何强制应用程序使用Rosetta2吗? - Andrii Petrenko

0

你可以在以下路径中找到 org.eclipse..cocoa.macosx.x86_64.

/Applications/ApacheDirectoryStudio.app/Contents/Eclipse/plugins。

它们阻止 M1 Mac 启动。

你可以将 Apache Directory Studio 作为 Eclipse 上的应用程序使用。 请查看 https://directory.apache.org/studio/installation-in-eclipse.html


0
Martin M.的解决方案安装x86_64版本的jdk对我很有用。与其使用oracle-jdk(因为现在是许可软件),我使用了temurin-11。然后按照moritz.vieli的评论修改Info.plist,使一切正常!要找到要放入Info.plist文件的路径,请运行以下命令以查看您的Mac上安装了哪些jdk:
/usr/libexec/java_home -V  (and append /bin/java to the path)

这些信息可以在Apache Directory Studio网站的常见问题解答部分找到。


-3

不知何故版本2.0.0.v20200411-M15在我的M1上可以直接使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接