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

标签 java eclipse macos

我需要通过 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 文件中的 JVMCapabilities 就足够了,例如

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

但我试过了,它在我的情况下不起作用

最佳答案

右键单击 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 以使其工作。

关于java - Mac OS、JDK1.7(和 1.8)不包含 JNI_CreateJavaVM 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589932/

相关文章:

ios - Xamarin Forms - XAML 热重载遇到问题,无法启动

c# - dotnet 运行报告 '.NETFramework,Version=v4.8 were not found'

z3 opt 的 Java API?

java - 在运行时通过全局变量迭代特定类

java - 让 Spring 在 rest 调用中接受 UTF-8 字符

objective-c - 如何进行捕鸟数据转换: NSArray to char

java - Apache HTTP Server 背后的 Glassfish Server Webservice

java - Eclipse - 方法调用提要?

java - 服务器端 Java 应用程序代码无法编译 - 为什么?

java - 上下文菜单可以打开 ImageView 吗?