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

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

在此之后,Eclipse部队关闭。

以下是我想说的几点:

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

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


你需要一个64位的trio:

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


我也有同样的问题

我通过安装64位JVM来解决这个问题

http://www.java.com/en/download/manual.jsp


我也遇到过类似的问题。它是通过以下方法解决的。

将Eclipse移动到程序文件(而不是程序文件(x86))。 从'path'环境变量中删除32位Java版本的路径。

我安装了两个版本的Java,但Eclipse一直试图使用32位的Java。


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。


谢谢misterfrb,我意识到Eclipse给出了这个错误,因为我刚刚安装了Oracle 10g开发套件,它正在C:\DevSuiteHome_1文件夹中寻找jvm.dll文件(我必须选择再次安装JDK和开发套件)。

在从路径变量中删除DevSuiteHome行并添加64位jvm.dll的修正位置(不确定这是否必要,没有尝试)之后,Eclipse再次工作,开发套件也仍然工作。


确保您的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

使用64位或32位的操作系统和Eclipse保持一致,并配置Eclipse .ini。

您的eclipse.ini文件可以在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目录。


或者,获取相同“位”版本的JRE和Eclipse,然后用下面的目标创建一个新的快捷方式(替换已安装的JRE和Eclipse位置/路径):

"C:\studio\eclipse.exe" -vm "C:\Program Files\Java\jre7\bin\server\jvm.dll" eclipse.vm="C:\Program Files\Java\jre7\bin\server\jvm.dll" java.home="C:\Program Files\Java\jre7" java.runtime.version=1.7.0

这样应该可以了。


解决这个问题的一个简单方法是将jre文件夹从已安装的JDK复制到Eclipse安装文件夹中。确保您复制的JDK与Eclipse安装的体系结构相同。

我必须这样配置我的机器,因为我在我的机器上同时运行Eclipse和Appcelerator Titanium Studio。Studio需要32位Java,而Eclipse需要64位Java。


当然,你需要有一个兼容的JDK和Eclipse版本,但你还需要在Eclipse .ini文件中添加以下代码:

-vm
yourdrive\java\bin

将它们作为eclipse.ini文件的前两行。


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


您可以解决这个问题,因为许多其他复制。您需要Eclipse和JDK都是32位的,或者都是64位的。操作系统的架构并不重要,而其他的仍然是相同类型的架构。


另一种选择是:

创建Eclipse.exe的快捷方式。打开快捷方式,将目标更改为:

"C:\Program Files\eclipse\eclipse.exe" -vm "c:\Program Files\Java\jdk1.7.0_04\bin\javaw.exe"

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

(当然,Eclipse和Java的64/32位版本必须相同。)


可以在64位机器上安装32位版本的JDK。参见JDK 7下载。


从站点下载64位JVM,手动安装并更新系统路径变量。这就解决了问题。

默认JVM安装在我的系统在“C:\程序文件 (x86) \ Java \ jre7” 手动安装的JVM已经安装 “C:\Program Files\Java\jre7”,并将此pate更新到系统后 路径变量,它工作。


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

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


你应该卸载所有旧的[JREs][1],然后安装最新的…我也遇到过同样的问题,现在我解决了。我:

最好安装Jre 6 32位。真的有效果!


我安装了多个版本的Java,包括Sun JDK和JRockit, 32位和64位等,在新安装64位Eclipse for Java EE (JUNO)时遇到了这个问题。

什么不起作用:

由Peter Rader提出的64位三人组:

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

我确保Sun JDK 7 64位是默认的java版本。当我从命令行(cmd.exe)输入“java -version”时,Sun JDK 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)

这并没有解决我的问题。

有效的方法:

根据Jayesh Kavathiya的建议,在eclipse.ini中添加-vm选项:

我在eclipse.ini中添加了以下内容:

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

注意:

我不需要卸载机器上的各种版本的JDK或JRE。


在Eclipse的下载页面上,应该写“JRE 32位”或“JRE 64位”,而不是“Windows 32位”或“Windows 64位”。

请确保使用与您的JDE兼容的正确版本,如前所述。


确保以Administrator权限启动Eclipse。


对于PDT用户——避免Zend下载页面——它没有任何64位下载链接。

使用eclipse站点本身。

上面的链接有一个较旧的3.6 Eclipse,由于Eclipse Bug #317785而无法更新自己。

我的解决方案是在64位Java的同时安装32位Java——这样Zend安装程序就可以正常工作了。

为了得到一个PHP IDE,人们必须经历大量的Java / Eclipse难题,这令人沮丧。


上面的答案让我很感兴趣,所以我决定演练一下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.


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


我经历过所有的Eclipse错误,这是其中之一。问题是Eclipse 64位版本。下载32位版本并启动它。


如果你使用整个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相关的东西。


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

-vm
C:\Progra~1\Java\jdk1.6.0_38\jre\bin\server\jvm.dll

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

我希望它能帮助到一些人。


从Java 6升级到Java 7后,我也遇到了同样的问题。在我删除Java 6(64位)并重新安装Java 7(64位)后,Eclipse可以工作了。:)


我也有同样的想法。我使用的是64位Eclipse,但我的JDK是32位的。所以我安装了64位版本,现在没问题了。


在eclipse.ini的开头的两行中添加-vm参数及其值是至关重要的

虚拟机 C:\Program Files\Java\ jdk1.7.0_45 \ bin \ javaw.exe


我也有同样的问题。使用64位操作系统的所有操作系统都应该是64位的。 Java和Eclipse。 我尝试了所有的方法在stackoverflow和youtube。这些方法都不适合我,直到我发现了这个简单的方法。

我安装了64bit java form Cnet下载,问题自动修复。 我提到源代码是因为如果你是一个新蜜蜂,谷歌和去第一个Cnet lint而不是官方网站太容易了。

附注:如果你有Android ADT包,并试图从它打开eclipse,得到了同样的错误,你可以用这个方法解决这个问题。


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

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

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


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

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

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


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

wiki.eclipse.org/Eclipse.ini

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


您已经在环境变量中更改了JAVA_HOME和PATH的正确版本。


这个错误意味着Eclipse的体系结构与Java运行时的体系结构不匹配,即如果一个是32位的,另一个必须是相同的,而不是64位的。

最可靠的修复方法是在eclipse.ini中指定JVM位置:

-vm
C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javaw.exe

重要:这两行必须在-vmargs之前。不要使用引号;允许使用空格。


这个错误,我们得到的,因为不同的Java版本下载32位版本。


安装JDK 1.8。_91(混合模式)是另一个解决方案!


我想为这个错误提供另一种解决方案,特别是针对那些希望在一个系统中同时使用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”


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