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

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

在此之后,Eclipse部队关闭。

以下是我想说的几点:

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

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


当前回答

简单,我有一个64位的操作系统,32位的Eclipse和JDK 32和64安装…我刚刚卸载了64位JDK和Eclipse工作正常。

其他回答

正如许多人已经提到的,对于Eclipse和Java来说,这是一个32位和64位的问题。你不能混淆32位和64位。由于Eclipse不使用JAVA_HOME,您可能必须在启动Eclipse之前更改PATH,以确保您使用的不仅是适当的Java版本,而且是32位或64位的Java版本(或者像Jayath指出的那样修改INI文件)。

如果您正在从公司共享中安装Eclipse,您应该确保您可以知道您正在解压缩哪个Eclipse版本,并解压缩到相应的Program Files目录,以帮助跟踪哪个是哪个,然后更改PATH(可以通过(Windows)控制面板-> System永久地更改PATH=/ PATH /到/32或64bit/java/bin;%PATH%(如果您不想在系统和/或用户环境变量中设置它,可能会创建一个批处理文件)。记住,32位是在程序文件(x86)中。

如果不确定,只需启动Eclipse,如果得到错误,将PATH更改为Java的其他“位”版本,然后再试一次。然后将Eclipse目录移动到适当的Program Files目录。

在我的例子中,我试图从命令提示符启动java,但得到了这个错误

无法打开“C:\Windows\jre\lib\amd64\jvm.cfg”

这意味着“java”是从这个错误的目录开始的PATH中查找的。删除文件夹C:\Windows\jre\就解决了这个问题

我不知道为什么,但我有jre安装到我的c:\windows目录和java.exe和javaw.exe在我的windows\system32目录。

显然,即使在eclipse.ini文件中添加了-vm标志后,这些目录仍然获得了优先级。

从这里删除他们为我解决了问题。

上面的答案让我很感兴趣,所以我决定演练一下OS、Eclipse和JVM三人组的所有可能组合。无论如何,无论谁正在深入研究和阅读我的帖子,检查以下作为一个热点(我是Windows 7用户)。

You understand Program Files and Program File (x86) are two different folders... x86 stands for the 32-bit version of programs and the former is the 64-bit version. If you have multiple versions of Java installed with different bitness and release versions, which is bound to happen with so many open source IDEs, managers, administrative consoles, the best option is to set the VM argument directly in the eclipse.ini file. If you don't, Eclipse will go crazy and try searching itself which is not good.

最简单的解决方案是在eclipse.ini中包含一个特定的JRE:

wiki.eclipse.org/Eclipse.ini

有了它,您几乎可以启动任何Eclipse版本