jni - 未能加载JNi共享Library ( JDK )

  显示原文与译文双语对照的内容

尝试打开 Eclipse 时,出现pop-up对话框状态:

加载JNI共享库"C:/JDK/bin/client/jvm.dll"`. 失败

在这里之后,Eclipse 强制关闭。

下面是一些我想做的要点:

  • 我检查了一下,看看那边是否有什么东西存在。 它确实存在。
  • 我的Eclipse 和 Java SE开发工具包都是 64位 。 我检查了我的系统,它可以处理 64 -bit 。
  • 我发现我已经开始找这个问题在谷歌和在栈溢出时,唯一的答案就是要下载 32位 版本的JDK和 Eclipse 。

下载了一点我希望这么做,因为只有一很 32位 版本尽量不要使用。
要解决这个问题的建议是什么?

时间:

操作系统,JDK和 Eclipse的工作对:


  • 32位 操作系统- 32位 JDK - 32位 Eclipse ( 仅适用于 32位 )
  • 64位 操作系统- 32位 JDK - 32位 Eclipse
  • 64位 操作系统- 64位 JDK - 64位 Eclipse ( 仅适用于 64位 )

安装了几个jdk和 jre 。

在PATH变量中,每个都有自己的条目,它们都或多或少地工作。

从路径变量来看,一些安装是完全无用的,因为它们从未被使用过。 当然,这个"非活动"javas可以手动从 Eclipse 内如果我需引用,但是我永远不做了,所以我还真没需要它们。 ( 至少当时我这么认为。。)

我清理了混乱,deinstalled,所有当前只安装了 JDK + JRE 1.7 64 -bit 。

Eclipse'安装'的一个失败后, Failed to Load the JNI shared Library 新安装的JDK相对应的路径,它认为 jvm.dll 应该是。

在我的否则 all-64-bit setup, 失败的Eclipse 是唯一一个我所有的ide,它还是一台 32位 老汇

像经常提到的那样添加VM参数在 eclipse.ini 中没有用( 因为我只有错误的jdk/jre要与之相关。)

我也不知道如何检查这个 Eclipse 是否是 32位 或者 64位 版本( 我无法在任务管理器中查找,因为这个 Eclipse'安装'不会启动。 自从我设置好它以来,我已经不记得它的版本了。

如果你使用一个新的JDK和一个旧的 JRE,你可能会遇到麻烦,但是它更可能是一个java.lang.UnsupportedClassVersionError 出现,IIRC

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


-vm
C:pathto64bitjavabinjavaw.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 FilesJavajdk1.6.0_32binjavaw.exe
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

使用操作系统和 Eclipse 同时 64位或者 32位保持相同和配置 eclipse.ini

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

另一个选项是:

创建指向 Eclipse.exe.的快捷方式打开快捷方式并将目标更改为:


"C:Program Fileseclipseeclipse.exe" -vm"c:Program FilesJavajdk1.7.0_04binjavaw.exe"

对于你的安装,请确保位置指向正确的Eclipse 安装目录和正确的javaw.exe 安装目录。

( 该 64/32 位一般 Eclipse 版本和Java需要将相同的,当然) 。

我已经安装了多个版本的Java,Sun JDK & JRockit,两个 32位和 64位,等等,通过一个全新的64位 Eclipse 安装遇到这个问题。

没有做什么:

64位 Rader建议的三重奏:

我正在使用 64位 Eclipse 在 64位 操作系统( Windows 7 ) 上。

我保证 Sun JDK 7 64位 是默认的java版本。 当我键入从 命令行"-version"( cmd.exe ),太阳一点点理解 7 64位 返回的时间。。


java version"1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

这并没有解决我的问题。

做了什么工作:

将-vm选项添加到 eclipse.ini,如 Jayesh Kavathiya建议:

我将以下内容添加到 eclipse.ini:


-vm
C:/apps/java/jdk7-64bit/bin/javaw.exe

注:

我不需要卸载机器上的任何版本的JDK或者 JRE 。

对于丢失的jvm.dll 文件,我们可以在 eclipse.ini 文件中提供dll文件的路径,如


-vm
C:Progra~1Javajdk1.6.0_38jrebinserverjvm.dll

在这里删除路径中的任何空格和双引号是很重要的。 当我删除引号和空格时,它为我工作。

我希望它能帮助某人。

就像许多人提到的,这是 EclipseJava的32 vs 64位问题。 你不能混合 32和 64位。 由于 Eclipse 不使用 JAVA_HOME,所以你可能需要在启动 Eclipse 之前更改路径,以确保使用的是适当的Java版本,还包括 32或者 64位( 或者修改INI文件为 Jayath ) 。

如果你正在从company-share安装 Eclipse,你应该确保你可以确定解压缩哪个 Eclipse 版本,并解压缩到适当的Program Files 目录,以帮助跟踪哪个位置,然后更改路径( 永久通过( Windows ) 控制面板 PATH=/path/to/32 or 64bit/java/bin;%PATH% ( 如果你不想在系统和/或者用户 环境变量 中设置它,可能会创建一个批处理文件) 。 记住,32位 在 Program Files (x86) 。

如果不确定,只需启动 Eclipse,如果有错误,请更改到其他'位'版本的路径,然后重试。 然后将 Eclipse 目录移动到合适的Program Files 目录。

当然,你需要有兼容的JDK和 Eclipse 版本,但是你还需要在下面的行中添加 eclipse.ini 文件:


-vm
yourdrivejavabin

使它们成为 eclipse.ini 文件的前两行。

...