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

加载JNI共享库“C:/JDK/bin/client/jvm.dll”失败。

在此之后,Eclipse部队关闭。

以下是我想说的几点:

我查了下那条路径上有没有东西。它确实存在。 我的Eclipse和Java SE Development Kit都是64位的。我检查了我的系统,它可以处理64位。 我在谷歌和Stack Overflow上搜索过这个问题,我找到的唯一答案是下载32位版本的JDK和Eclipse。

下载32位版本是我想做的最后一件事。 如何解决这个问题?


当前回答

OS、JDK和Eclipse的工作配对:


32位OS | 32位JDK | 32位Eclipse(仅32位) 64位操作系统| 32位JDK | 32位Eclipse 64位OS | 64位JDK | 64位Eclipse(仅64位)


我安装了几个jdk和jre。

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

从PATH变量判断,有些安装完全无用,因为它们从未被使用过。当然,如果需要,可以在Eclipse中手动引用“不活跃”的java,但我从来没有这样做过,所以我真的不需要它们。(至少我当时是这么认为的……)

我清理了这些混乱,卸载了所有当前的Java,只安装了JDK + JRE 1.7 64位。

其中一个Eclipse“安装”失败后,加载JNI共享库失败和一个给定的路径相对于新安装的JDK,它认为jvm.dll所在的位置。

在我的全部64位设置中,失败的Eclipse是唯一一个仍然是32位版本的ide。

像经常提到的那样,在eclipse.ini中添加VM参数对我的情况没有用处(因为我只使用了错误的JDK/JRE)。

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

如果您使用较新的JDK和较旧的JRE,您可能也会遇到麻烦,但这时更有可能出现java.lang.UnsupportedClassVersionError, IIRC。

其他回答

只需检查PATH环境变量。在我的电脑->属性->高级系统设置->环境变量->(左上窗口“用户变量为“PC的一些名称””)只需检查PATH变量。如果它不存在,则使用以下命令创建它——> C:\Program Files (x86)\Java\jre7\bin <——

在更新了Eclipse之后,我也遇到了同样的问题。我发现该路径要求64位版本,但我有32位的dif路径。这对我很有帮助。附注:我有一个64位的操作系统,32位的JRE和32位的Eclipse。一切工作正常:)

如果你使用整个64位三人组,它仍然不能工作(我在Intellij Idea中启动Android Monitor时遇到了这个问题),可能是错误的jvm.dll被使用,而不是你的java所期望的。只需遵循以下步骤:

在JRE目录下找到jvm.dll: C:\Program Files\Java\jre7\server\bin\jvm.dll 在JDK目录下找到jvm.dll: c:\Program Files\Java\ jdk1.7.0_xx \ jre \ bin \ server \ 将JRE目录中的jvm.dll复制到JDK目录中,并覆盖JDK中的jvm.dll。

别忘了做备份,以防万一。不需要安装或卸载任何与Java相关的东西。

我想为这个错误提供另一种解决方案,特别是针对那些希望在一个系统中同时使用32位和64位Eclipse的人。

如果JRE子目录存在,Eclipse将使用JRE/JDK启动。(STS或其他基于eclipse的IDE也支持此功能…)

解决方案是使用mklink.exe命令创建目录连接,该命令存在于windows vista或更新版本中(junction.exe为windows 2000/XP提供类似的功能) 打开命令行窗口,执行如下命令:

mklink /j "$ECLIPSE-HOME/jre" "$JDK_or_JRE_home"

当然,如果Eclipse用于64位Windows, JDK/JRE的体系结构必须相同。

假设:

Eclipse for windows x86_64安装在d:\devTool\ Eclipse中 JDK for windows x64安装在C:\Program Files\Java\jdk1.8.0

创建jre文件夹的命令如下:

mklink /j "d:\devTool\eclipse\jre" "C:\Program Files\Java\jdk1.8.0"

顺便说一句,删除目录连接不会删除任何文件。如果您创建了一个错误的链接,您可以使用文件资源管理器或rmdir命令删除它。

删除文件夹“d: \ devTool \ eclipse \ jre”

是的,只要确保您的Eclipse和JDK版本都是64位的。为了确保一切正确,卸载JDK并将其安装在程序文件中,而不是安装在程序文件(x86)中。至少这解决了我的问题。

这是因为窗口路径的交互方式。32位JRE在64位版本之前列出。因为32位和64位版本的javaw.exe名称相同,所以它会尝试找到的第一个版本。更改Path environment变量的顺序,使64位版本在列表中的位置高于32位版本,这样它就能正常工作。