Eclipse:JVM共享库不包含JNI_CreateJavaVM符号

时间:2014-09-09 21:41:07

标签: java eclipse macos jvm

Mac OSX 10.9上的Eclipse 4.4.0,JVM 8在我尝试运行时发出警告:

" JVM共享库" /Library/Java/JavaVirtualMachine/jdk1.8.0_20.jdk/Contents/Home/bin /.../ jre / lib / server / libjvm.dylib&#34 ;不包含JNI_CreateJavaVM符号"

应用程序无法启动。

我根据Shan的8/25指令编辑了Info.plist,但我仍然遇到同样的错误。

我还下载了&从Apple的网站安装Java,但我仍然得到同样的错误。

感谢您的帮助。

6 个答案:

答案 0 :(得分:4)

如果使用Eclipse安装程序安装eclipse,则当安装程序未指向正确的jvm位置时,可能会发生这种情况。
您可以按如下方式更正。

1.右键单击安装程序文件,然后选择“显示包装内容'
” 2.转到目录并打开Info.plist
3.在此文件的底部,您会看到带有标记function updateNumber() { x = 0 $('table.table tbody tr').each(function(i,v){ $(this).find('td:eq(0)').text(x+1) x++; }); } $("#c").on('click',function(e){ e.preventDefault(); var tr = $("table.table tbody tr:first").clone().appendTo("table.table tbody"); updateNumber(); console.log($('table.table tbody tr')); }); $('body').on("click",".rm", function(e) { e.preventDefault(); $(this).parents('tr').remove(); updateNumber(); }); 的评论部分,其中包含一些路径。您可以在那里设置正确的JAVA_HOME路径并取消注释该部分。 (在控制台中运行<string>-vm</string>将获得当前设置)

答案 1 :(得分:1)

在Mac OS上最新的Eclipse安装过程中,我发现了一些重要细节

  • Info.plist确实已锁定。我使用命令行将其解锁 然后“ chmod 666 Info.plist”。
  • Info.plist中vm字符串的版本特定于JDK。我无法使用JDK 13进行此操作。因此,我使用了Java 8版本:

/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/java

  • 似乎很重要:JAVA_HOME应该与您在Info.plist中拥有的内容完全对应

要解锁Info.plist,您需要从dmg文件中提取Eclipse Installer.app。然后从包含Eclipse Installer.app的目录中执行以下命令:

cd "Eclipse Installer.app"/Contents
chmod 666 Info.plist 

答案 2 :(得分:0)

在我的情况下,运行命令时,我已经安装了几个jdk:

/usr/libexec/java_home -V

,并且安装程序抱怨Java JDK 11缺少所需的东西。因为我支持使用11而不支持8,所以可以使用以下命令从系统中删除此JDK:

cd /Library/Java/JavaVirtualMachines
sudo rm -fr jdk-11.0.1.jdk

这使我的jdk1.8.0_221.jdk成为最新的jdk,并且安装程序运行良好。

您可以将jdk-11.0.1.jdk移至另一个位置,以使用其他jdk版本安装Eclipse,然后将其移回。

答案 3 :(得分:0)

我遇到了这个问题,最终通过直接在info.plist中将eclipse指向openjdk 13.0.2来解决此问题,从而切换到了较新版本的openjdk 13.0.2。它不适用于构建版本12.0.2 + 8。版本12.0.2 + 10解决了该问题。

/Library/Java/JavaVirtualMachines/jdk-12.0.2.openjdk/Contents/Home/bin
mychine1:bin$ ./java -version
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)

答案 4 :(得分:0)

我在使用不同的Java版本(java 11的所有变体)时遇到了不同的错误。

对我来说,它始于-

“ jdk-11.0.1.jdk”无法打开,因为无法开发 已验证。

我试图做到这一点,一旦我克服了这个错误,我就击中了

JVM共享库不包含JNI_CreateJavaVM符号。

然后我尝试使用另一个Java 11,并遇到-

无法创建Java虚拟机

这是我拥有的不同版本-

/ usr / libexec / java_home -V

匹配Java虚拟机(4):

11.0.5, x86_64:   "AdoptOpenJDK 11"   /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
11.0.4, x86_64:   "OpenJDK 11.0.4"    /Library/Java/JavaVirtualMachines/jdk-11.0.4+11/Contents/Home
11.0.1, x86_64:   "OpenJDK 11.0.1"    /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
1.8.0_161, x86_64:    "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home

我也有Java 11的另一种变体,当我删除它时,您没有在上面的列表中看到它。

最终对我有用的东西- OpenJDK 11.0.4。

11.0.4, x86_64:   "OpenJDK 11.0.4"    /Library/Java/JavaVirtualMachines/jdk-11.0.4+11/Contents/Home

我还在Mac上使用Eclipse Installer重新安装了Eclipse(版本为2019-12)。这也是我早些时候安装它的方式,但是它不能与其他java 11一起使用。 注意-

答案 5 :(得分:0)

就我而言,我只安装了 java 11,为了解决这个问题,我安装了 java 8 并在 JAVA_HOME 中设置了 java 8,然后它开始工作。