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

时间:2014-07-05 19:37:36

标签: 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>

但是我尝试了它并且它在我的情况下不起作用

3 个答案:

答案 0 :(得分:49)

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

答案 1 :(得分:15)

对于那些在完成上述任务并且仍然看到相同的错误消息后可能被卡住的人:我确信我已经下载了64位Eclipse,但事实证明我有32位版本。下载64位后,一切正常!

答案 2 :(得分:0)

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