当我尝试打开Eclipse时,弹出对话框指出:
无法加载JNI共享库“C:/JDK/bin/client/jvm.dll”`。
此后,Eclipse强制关闭。
以下是我想提出的几点:
下载32位版本是我最不想做的事情 会有什么建议来解决这个问题?
答案 0 :(得分:828)
你需要一个64位三人组:
答案 1 :(得分:302)
我安装了几个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位版本(我无法在Task Manager查找,因为这个Eclipse'安装'无法启动自从我设置它以来已经有一段时间了,我也记不起它的版本了。)
如果你使用较新的JDK和较旧的JRE,你也可能遇到麻烦,但是java.lang.UnsupportedClassVersionError
更有可能出现IIRC。
答案 2 :(得分:257)
确保您的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位或32位保持相同并配置 eclipse.ini 。
您的eclipse.ini文件可以在您的eclipse文件夹中找到。
答案 3 :(得分:58)
答案 4 :(得分:38)
此错误意味着Eclipse的体系结构与Java运行时的体系结构不匹配,即如果一个是32位,则另一个必须相同,而不是64位。
最可靠的解决方法是在eclipse.ini中指定JVM位置:
-vm
C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javaw.exe
重要提示:这两行必须在 -vmargs之前。不要使用引号;允许空格。
答案 5 :(得分:33)
另一种选择是:
创建Eclipse.exe的快捷方式。打开快捷方式并将目标更改为:
"C:\Program Files\eclipse\eclipse.exe" -vm "c:\Program Files\Java\jdk1.7.0_04\bin\javaw.exe"
对于您的安装,请确保位置指向正确的Eclipse安装目录和正确的javaw.exe
安装目录。
(当然,64和32位版本的Eclipse和Java必须相同。)
答案 6 :(得分:30)
我安装了多个版本的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的建议将-vm选项添加到eclipse.ini:
我在eclipse.ini中添加了以下内容:
-vm
C:/apps/java/jdk7-64bit/bin/javaw.exe
我没有必要卸载我机器上的任何JDK或JRE版本。
答案 7 :(得分:18)
对于缺少的jvm.dll
文件,我们可以在eclipse.ini
文件中提供dll文件的路径
-vm
C:\Progra~1\Java\jdk1.6.0_38\jre\bin\server\jvm.dll
此处删除路径和双引号中的任何空格非常重要。 当我删除引号和空格时,它对我有用。
我希望它有所帮助。
答案 8 :(得分:11)
我有类似的问题。它解决了以下问题。
我安装了两个版本的Java,但Eclipse一直试图使用32位版本。
答案 9 :(得分:10)
当然,您需要具有JDK和Eclipse的兼容版本,但您还需要在eclipse.ini
文件中添加以下行:
-vm
yourdrive\java\bin
将它们设为eclipse.ini
文件的前两行。
答案 10 :(得分:8)
正如许多人已经提到的,这是Eclipse和Java的32对64位问题。你不能混淆32位和64位。由于Eclipse不使用JAVA_HOME
,因此您可能必须在启动Eclipse之前更改PATH,以确保您不仅使用适当的Java版本,而且还使用32位或64位(或修改INI)档案如Jayath所说)。
如果要从公司共享安装Eclipse,则应确保可以确定要解压缩的Eclipse版本,并解压缩到相应的 Program Files 目录以帮助跟踪哪个是哪个,然后更改PATH(永久通过(Windows)控制面板 - >系统或设置PATH=/path/to/32 or 64bit/java/bin;%PATH%
(如果您不想在系统和/或用户环境变量中设置它,可能会创建一个批处理文件)请记住,32位位于程序文件(x86)。
如果不确定,只需启动Eclipse,如果出现错误,请将PATH更改为其他'bit'版本的Java,然后再试一次。然后将Eclipse目录移动到相应的 Program Files 目录。
答案 11 :(得分:7)
或者,获取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
这应该可以解决问题。
答案 12 :(得分:7)
您可以像许多其他人一样解决这个问题。你需要 Eclipse和JDK是32位或两者都是64位。操作系统的体系结构并不重要,而其他体系结构保持相同类型的结构。
答案 13 :(得分:6)
答案 14 :(得分:6)
解决此问题的一种简单方法是将jre
文件夹从已安装的JDK复制到Eclipse安装文件夹中。确保从中复制的JDK与Eclipse安装的架构相同。
我必须以这种方式配置我的机器,因为我在我的机器上运行了Eclipse和Appcelerator Titanium Studio。 Studio需要32位Java,而Eclipse需要64位。
答案 15 :(得分:5)
只需检查PATH环境变量即可。在我的电脑 - > 属性 - > 高级系统设置 - > 环境变量 - > (左上窗口“User variables for”某个名称的PC“”)只需检查PATH变量。如果它不存在,请使用以下命令创建它 - > C:\ Program Files(x86)\ Java \ jre7 \ bin< -
更新Eclipse后,我遇到了同样的问题。我发现路径问64位版本,但我在dif路径中有32位。这对我很有帮助。 P.S。:我有一个64位操作系统,32位JRE和32位Eclipse。一切正常:))
答案 16 :(得分:5)
你应该卸载所有旧的[JRE] [1],然后安装最新的...我有同样的问题,现在我解决了。我'已经:
最好安装Jre 6 32位。它确实有效。
答案 17 :(得分:5)
是的,只需确保您的Eclipse版本和JDK都是64位。只是为了确保所有内容都正确卸载JDK并将其安装在 Program Files 中而不是 Program Files(x86)中。至少这解决了我的问题。
答案 18 :(得分:4)
从站点下载64位JVM并手动安装并更新系统路径变量。这解决了这个问题。
答案 19 :(得分:4)
谢谢你 misterfrb ,我意识到Eclipse发出了这个错误,因为我刚刚安装了Oracle 10g Developer suite,它正在寻找jvm.dll
文件C:\DevSuiteHome_1
1}}文件夹(我必须选择再次与开发人员套件一起安装JDK)。
从路径变量中删除DevSuiteHome行并添加64位jvm.dll
的更正位置(不确定是否有必要,没有尝试),Eclipse再次工作,Developer Suite仍然可以太
答案 20 :(得分:4)
很简单,我有一个64位操作系统,32位Eclipse和JDK 32& 64安装...我刚刚卸载了64位JDK,Eclipse工作正常..
答案 21 :(得分:4)
从Java 6升级到Java 7之后我遇到了同样的问题。在我删除Java 6(64位)并重新安装Java 7(64位)之后,Eclipse工作了。 :)
答案 22 :(得分:3)
确保以管理员权限启动Eclipse。
答案 23 :(得分:3)
我想为此错误提供另一种解决方案,特别是对于想要在一个系统中使用32位和64位Eclipse的人。
Eclipse将使用jre
子目录中的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
命令将其删除。
rmdir" d:\ devTool \ eclipse \ jre"
答案 24 :(得分:3)
在eclipse.ini开始时在2行添加-vm参数及其值是至关重要的
-vm C:\ Program Files \ Java \ jdk1.7.0_45 \ bin \ javaw.exe
答案 25 :(得分:2)
如果您使用整个64位三重奏并且它仍然无法工作(我在Intellij Idea中启动Android Monitor时遇到此问题),可能使用的错误是jvm.dll与您期望的内容相反。只需按照以下步骤操作:
在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\
将jvm.dll
从JRE drectory复制到JDK目录中,并覆盖JDK中的jvm.dll。
别忘了备份,以防万一。无需安装或卸载与Java相关的任何内容。
答案 26 :(得分:2)
同样的事发生在我身上。我有64位Eclipse,但我的JDK是32位。所以我安装了64位版本,现在就可以了。
答案 27 :(得分:2)
对于PDT用户 - 避免 Zend download page - 它没有链接任何64位下载。
上面的链接有一个较旧的3.6 Eclipse,由于Eclipse Bug #317785而无法自行更新。
我的解决方案是只安装32位Java和64位 - 这使得Zend安装程序能够正常工作。
令人沮丧的是,为了获得PHP IDE,必须经历大量的Java / Eclipse。
答案 28 :(得分:2)
我不确定为什么,但是我的j4安装到了我的c:\ windows目录以及我的windows \ system32目录中的java.exe和javaw.exe。
显然,即使将-vm标志添加到我的eclipse.ini文件中,这些目录也会获得优先权。
从这里删除它们为我解决了问题。
答案 29 :(得分:2)
您已在环境变量中更改了JAVA_HOME和PATH的正确版本。
答案 30 :(得分:2)
在Eclipse的下载页面上,它应该写成“JRE 32位”或“JRE 64位”而不是“Windows 32位”或“Windows 64位”。
请务必使用与JDE兼容的正确版本,如前所述。
答案 31 :(得分:2)
您可以在64位计算机上安装32位版本的JDK。请参阅 JDK 7 downloads 。
答案 32 :(得分:1)
就我而言,我尝试从命令提示符启动java并出现此错误
错误:无法打开" C:\ Windows \ jre \ lib \ amd64 \ jvm.cfg"
这意味着" java"从这个错误的目录开始在PATH中寻找。删除文件夹C:\ Windows \ jre \解决了问题
答案 33 :(得分:0)
我遇到了所有Eclipse错误,这是其中之一。问题是Eclipse 64位版本。下载32位版本并启动它。
答案 34 :(得分:0)
我遇到了同样的问题。 64位操作系统都应该是64位。 Java和Eclipse。 我尝试了stackoverflow和youtube中的所有方法。他们没有为我工作,直到我找到了这个简单的方法。
我安装了64位java表格Cnet下载,问题自动修复了。 我提到了这个来源,因为如果你是一只新的蜜蜂,谷歌太容易去第一个Cnet lint而不是官方网站。
P.S。如果您有Android ADT捆绑包并尝试从中打开eclipse并得到相同的错误,您也可以使用此方法解决该问题。
答案 35 :(得分:0)
答案 36 :(得分:0)
由于不同的Java版本下载32位版本,我们得到了这个错误。
答案 37 :(得分:0)
安装JDK 1.8._91(混合模式)是另一种解决方案!
答案 38 :(得分:0)
由于Windows路径交互的方式而发生。在您的64位版本之前,列出了您的32位JRE。由于javaw.exe在32位和64位版本中的名称均相同,因此它将尝试找到的第一个。更改路径环境变量中的顺序,使列表上的64位版本比32位更高,并且可以正常工作。