Eclipse aarch64 和 OpenJDK (ARM)

问题描述

我正在试用 Eclipse 4.20 版本,可作为 Mac OSX (64 bit version for Arm64/AArch64) 在 Apple Silicon 上的 macOS 11 下运行。这个版本似乎没有附带 jdk,所以我认为我需要自己处理。我使用 sdkman 安装了 Bellsoft 的 16.0.1-librca(Rosetta2 模式为 false)。

我像这样编辑了 Eclipse 的 info.plist 文件

<key>Eclipse</key>          
<array>
  <string>-vm</string>
  <string>~/.sdkman/candidates/java/16.0.1-librca/bin/java</string>
…(Other stuff here)
</array>

和Eclipse确实启动,但立即崩溃。在此 macOS 声称我无权启动该应用程序后不久。结果与 Zulu AArch64 相同。

我通常得到

"异常类型:EXC_BAD_ACCESS (SIGABRT) 异常代码: KERN_INVALID_ADDRESS 在 0x000000000000000c"

“应用程序特定信息:abort() 调用

在 libjvm.dylib 中。

这取决于所使用的设置。

假设这些版本应该在 Apple Silicon 上的 macOS 11 中运行,那么这似乎应该可以运行。还是我在这里误解了 aarch64 的含义?这些可能只是 jdk 开发人员的版本吗?我查看了 Eclipse 的“目标环境”,但不确定此处标记为“Mac...for Arm64/AArch64”的版本还有哪些其他用途。

libexec 没有看到 sdkman 安装的版本。当我在终端中运行 java --version 时,它确实显示“openjdk 16.0.1 2021-04-20”而不是我的主要 Oracle JDK。

有什么关于如何设置的建议吗?

解决方法

我还没有调查实际原因,但是在我安装了“OpenJDK 64-Bit Server VM Zulu (build 11.0.11+9-LT)”之后,我开始考虑overriding eclipse.ini为避免 macOS 阻止我启动修改后的应用程序(反复出现的问题。注意我没有尝试覆盖)我从命令行使用 open 命令启动了 Eclipse,然后 Eclipse 立即使用

-vm 
/Users/[user name]/.sdkman/candidates/java/11.0.11-zulu/zulu-11.jdk/Contents/Home/bin/`

至少这会启动 Eclipse。双击该应用呈现与之前相同的结果。

一种理论是,由于 open 命令在终端中运行并且 java --version 验证了 sdkman 在那里设置的 zulu jdk,这就是原因。但是 JAVA_HOME 为空,/usr/libexec/java_home -V 命令仅列出 Oracle JDK。

谢谢@greg-449 和@howlger。如果没有您的有用建议,我想我不会找到这个。