协慌网

登录 贡献 社区

无法加载 JNI 共享库(JDK)

当我尝试打开Eclipse 时 ,弹出对话框指出:

无法加载 JNI 共享库 “C:/JDK/bin/client/jvm.dll”`。

在此之后,Eclipse 强制关闭。

以下是我想提出的几点:

  • 我检查了那条路上是否有任何东西。它确实存在。
  • 我的 Eclipse 和Java SE 开发工具包都是 64 位的。我检查了我的系统,它可以处理 64 位。
  • 我在 Google 和 Stack Overflow 上搜索过这个问题,我找到的唯一答案是下载 32 位版本的 JDK 和 Eclipse。

下载 32 位版本是我唯一想做的事情。
会有什么建议来解决这个问题?

答案

你需要一个 64 位的三人组合:

  • 64 位操作系统
  • 64 位 Java
  • 64 位 Eclipse

OS,JDK 和 Eclipse 的工作配对:


  • 32 位操作系统 - 32 位 JDK - 32 位 Eclipse(仅限 32 位)
  • 64 位操作系统 - 32 位 JDK - 32 位 Eclipse
  • 64 位操作系统 - 64 位 JDK - 64 位 Eclipse(仅限 64 位)

我安装了几个 JDK 和 JRE。

他们每个人都有自己的 PATH 变量条目,所有条目都或多或少都有效。

从 PATH 变量来看,一些装置完全没用,因为它们从未使用过。当然,如果需要的话,可以从 Eclipse 中手动引用 “非活动”Javas,但我从未这样做过,所以我真的不需要它们。 (至少我当时这么认为......)

我清理了乱七八糟的东西,卸载了所有当前的 Java,只安装了 JDK + JRE 1.7 64 位。

其中一个 Eclipse'安装' 之后Failed to Load the JNI shared Library以及相对于新安装的 JDK 的给定路径,它认为jvm.dll就是这样。

失败的 Eclipse 是我所有 IDE 中唯一一个仍然是 32 位版本的全部 64 位设置。

eclipse.ini经常提到的那样添加 VM 参数在我的情况下是没有用的(因为我只有错误的 JDK / JRE 来关联。)

我也无法找到如何检查这个 Eclipse 是 32 位还是 64 位版本(我无法在任务管理器中查找它,因为这个 Eclipse'安装' 无法启动。而且因为它有我已经设置了一段时间,我也记不起它的版本了。)

如果您使用较新的 JDK 和较旧的JRE,也可能遇到麻烦,但是更有可能出现java.lang.UnsupportedClassVersionErrorIIRC

确保您的 eclipse.ini 文件包含以下行。

-vm
C:\path\to\64bit\java\bin\javaw.exe

我的 eclipse.ini 例如:

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.2.R36x_v20101222
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
-vm
C:\Program Files\Java\jdk1.6.0_32\bin\javaw.exe
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

使用 OS 和 Eclipse 64 位或两者都保持相同并配置eclipse.ini

您的 eclipse.ini 文件可以在您的 eclipse 文件夹中找到。