Mac OS、JDK1.7(和 1.8)不包含 JNI_CreateJavaVM 符号

问题描述 投票:0回答:5

我需要通过 JDK 1.7 在 Mac OS 上运行 Eclipse Kepler(这是 PyDev 插件所必需的)。

问题是,虽然我已经成功安装了 1.7 jdk 并配置了 eclipse.ini 来使用它,但我收到了错误

JVM 共享库“/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin../jre/lib/server/libjvm.dylib”不包含 JNI_CreateJavaVM 符号。

更新 这里的聪明人https://github.com/joeferner/node-java/issues/90声称将JNI添加到info.plist文件中的JVMCapability中就足够了

<key>JVMCapabilities</key>
   <string>JNI</string>

但是我尝试过,但在我的情况下不起作用

java eclipse macos
5个回答
58
投票

右键单击 Eclipse 图标并选择“显示包内容”。在内容目录中,您将找到一个名为“Info.plist”的文件。向下滚动到文件底部,直到找到这个

<key>Eclipse</key>
    <array>
        <!-- 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>/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/java</string>
          <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java</string>
        -->

注意注释掉的部分。将 jdk 路径声明移出注释部分。现在看起来应该是这样的。

<key>Eclipse</key>
    <array>
      <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/java</string>
        <!-- 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>
        -->

最后一步,浏览到 /Library/Java/JavaVirtualMachines 并检查那里存在的 jdk 包名称。将上面命令中的jdk版本替换为该版本。

/Library/Java/JavaVirtualMachines/{your_jdk_package_name}/Contents/Home/bin/java

可选:在某些计算机上,完成所有这些操作后,您可能必须关闭查找器,导航到 eclipse 文件夹并再次单击 eclipse 才能工作。


15
投票

仅适用于那些在完成上述两项任务后仍然遇到相同错误消息的人:我确信我已经下载了 64 位 Eclipse,但事实证明我下载的是 32 位版本。下载64位后,一切正常!


0
投票

我有一个运行良好的 Eclipse Luna,并在尝试升级到 Java 8(并更新 jre、jdk 等)时开始出现此错误。 Shan 的解决方案对我不起作用。 所以我刚刚下载并安装了最新的 Eclipse。运行良好。节省调试和摆弄的时间。


0
投票

似乎 Eclipse [Apache Directory Studio] 需要针对 aarch64 重新编译。 Eclipse 在所有平台上一直都是一个挑战,包括 Linux。


0
投票

我在 Apache Directory Studio 中也遇到了类似的问题。尝试了此处列出的几乎所有解决方案,但没有任何效果对我有用。我使用的是 macOS M3 pro,它采用

aarch64
架构。 就我而言,唯一的解决方案是从源代码克隆并构建directory-studio(您可以在“product/target/products/”目录中找到构建的工件)。

© www.soinside.com 2019 - 2024. All rights reserved.