当我尝试打开Eclipse时,弹出对话框指出:
无法加载JNI共享库“C:/JDK/bin/client/jvm.dll”` .
在此之后,Eclipse强制关闭 .
以下是我想提出的几点:
-
我检查了该路径是否存在任何内容 . 它确实存在 .
-
我的Eclipse和Java SE Development Kit都是64位的 . 我检查了我的系统,它可以处理64位 .
-
我在Google和Stack Overflow上搜索过这个问题,我找到的唯一答案是下载32位版本的JDK和Eclipse .
下载32位版本是我唯一想做的事情 .
会有什么建议来解决这个问题?
30 回答
在eclipse.ini的开始时在2行添加-vm参数及其值是至关重要的
-vm C:\ Program Files \ Java \ jdk1.7.0_45 \ bin \ javaw.exe
很简单,我有一个64位操作系统,32位Eclipse和安装了JDK 32和64 ...我刚刚卸载了64位JDK,Eclipse工作正常..
确保以管理员权限启动Eclipse .
从站点下载64位JVM并手动安装并更新系统路径变量 . 这解决了这个问题 .
我系统中安装的默认JVM位于“C:\ Program Files”中
(86)\的Java \ jre7"
在"C:\Program Files\Java\jre7"中安装了手动安装的JVM,并且在将此头文更新到系统路径变量之后,它工作正常 .
此错误意味着Eclipse的体系结构与Java运行时的体系结构不匹配,即如果一个是32位,则另一个必须相同,而不是64位 .
最可靠的解决方法是在eclipse.ini中指定JVM位置:
Important: 这两行必须在-vmargs之前 . 不要使用引号;允许空格 .
您可以像许多其他复制的那样解决该问题 . 你需要 Eclipse and the JDK be 32-bits or both on 64-bits . 操作系统的体系结构并不重要,而其他体系结构保持相同类型的结构 .
我不知道为什么,但我把jre安装到我的c:\ windows目录和我的windows \ system32目录中的java.exe和javaw.exe .
显然,即使将-vm标志添加到我的eclipse.ini文件中,这些目录也会获得优先权 .
从这里删除它们为我解决了问题 .
在Eclipse的下载页面上,它应该写成“JRE 32位”或“JRE 64位”而不是“Windows 32位”或“Windows 64位” .
请务必使用与JDE兼容的正确版本,如前所述 .
我有类似的问题 . 它解决了以下问题 .
将Eclipse移动到程序文件(而不是程序文件(x86)) .
从'path'环境变量中删除32位版本Java的路径 .
我安装了两个版本的Java,但Eclipse一直在尝试使用32位版本 .
您应该卸载所有旧的[JRE] [1],然后安装最新的...我遇到了同样的问题,现在我解决了 . 我有:
最好安装Jre 6 32位 . 真的行 .
或者,获取相同的"bit"版本的JRE和Eclipse,然后使用以下目标创建一个新的快捷方式(替换已安装的JRE和Eclipse位置/路径):
这应该够了吧 .
我上面的答案让我受到了很多诱惑,我决定用OS,Eclipse和JVM三重奏来干掉所有可能的组合 . 无论如何,无论是谁正在挖掘和阅读我的帖子,请检查以下作为热点(我是Windows 7用户) .
您了解程序文件和程序文件(x86)是两个不同的文件夹... x86代表32位版本的程序,前者是64位版本 .
如果您安装了多个版本的Java,其中包含不同的位数和发行版本,这对于许多开源IDEs,管理员,管理控制台来说都是必然的,最好的选择是直接在
eclipse.ini
文件中设置VM参数 . 如果你不这样做,那么Eclipse会疯狂并尝试搜索自己哪个不好 .解决此问题的一种简单方法是将
jre
文件夹从安装的JDK复制到Eclipse安装文件夹中 . 确保从中复制的JDK与Eclipse安装的架构相同 .我必须以这种方式配置我的机器,因为我在我的机器上运行Eclipse和Appcelerator Titanium Studio . Studio需要32位Java,而Eclipse需要64位 .
对于PDT用户 - avoid Zend download page - 它没有链接任何64位下载 .
使用Elipse网站本身 .
上面的链接有一个较旧的3.6 Eclipse,然后由于Eclipse Bug #317785而无法自我更新 .
我的解决方案是只安装32位Java和64位 - 这允许Zend安装程序工作 .
令人沮丧的是,为了获得PHP IDE,必须经历大量的Java / Eclipse .
我安装了多个版本的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位...
这对我来说没有解决问题 .
DID的工作原理:
根据Jayesh Kavathiya的建议将-vm选项添加到eclipse.ini:
我在eclipse.ini中添加了以下内容:
注意:
我没有必要卸载我的机器上的任何JDK或JRE版本 .
当然,您需要具有JDK和Eclipse的兼容版本,但您还需要在
eclipse.ini
文件中添加以下行:将它们设为
eclipse.ini
文件的前两行 .确保您的eclipse.ini文件包含以下行 .
我的eclipse.ini例如:
使用OS和Eclipse 64位或两者都保持相同并配置 eclipse.ini .
您的eclipse.ini文件可以在您的eclipse文件夹中找到 .
您可以在64位计算机上安装32位版本的JDK . 见JDK 7 downloads .
对于缺少的
jvm.dll
文件,我们可以在eclipse.ini
文件中提供dll文件的路径这里删除路径中的任何空格和双引号很重要 . 当我删除引号和空格时,它对我有用 .
我希望它对某人有帮助 .
你需要一个64位三人组:
64位操作系统
64位Java
64位Eclipse
只需检查PATH环境变量 . 在我的电脑 - >属性 - >高级系统设置 - >环境变量 - >(左上窗口"User Variables for "某个PC的名称“”)只需检查PATH变量 . 如果它不存在,请使用以下命令创建它 - > C:\ Program Files(x86)\ Java \ jre7 \ bin < -
更新Eclipse后,我遇到了同样的问题 . 我发现路径要求64位版本,但我在dif路径中有32位 . 这对我很有帮助 . P.S . :我有一个64位操作系统,32位JRE和32位Eclipse . 一切正常:)
如果你使用整个64位三重奏并且它仍然不起作用(我在Intellij Idea中启动Android监视器时遇到此问题),可能使用错误的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\
将
jvm.dll
从JRE drectory复制到JDK目录中,并覆盖JDK中的jvm.dll .别忘了备份,以防万一 . 无需安装或卸载与Java相关的任何内容 .
是的,只需确保您的Eclipse和JDK版本都是64位 . 只是为了确保所有内容都正确卸载JDK并将其安装在Program Files而不是Program Files(x86)中 . 至少那解决了我的问题 .
同样的事发生在我身上 . 我有64位Eclipse,但我的JDK是32位 . 所以我安装了64位版本,现在就可以了 .
另一种选择是:
创建Eclipse.exe的快捷方式 . 打开快捷方式并将目标更改为:
对于安装,请确保位置指向正确的Eclipse安装目录和正确的
javaw.exe
安装目录 .(当然,64和32位版本的Eclipse和Java需要相同 . )
OS,JDK和Eclipse的工作配对:
32位操作系统 - 32位JDK - 32位Eclipse(仅限32位)
64位操作系统 - 32位JDK - 32位Eclipse
64位操作系统 - 64位JDK - 64位Eclipse(仅限64位)
我安装了几个JDK和JRE .
他们每个人都有自己的PATH变量条目,所有条目都或多或少都有效 .
从PATH变量来看,一些装置完全没用,因为它们从未使用过 . 当然,如果我需要,可以从Eclipse中手动引用“非活动”Javas,但我从未这样做过,所以我真的不需要它们 . (至少我当时这么认为......)
我清理了这个烂摊子,卸载了所有当前的Java,只安装了JDK JRE 1.7 64位 .
其中一个Eclipse 'installations'随后以
Failed to Load the JNI shared Library
和相对于新安装的JDK的给定路径失败,它认为jvm.dll
是 .The failing Eclipse was the only one of all my IDEs that was still a 32-bit version on my otherwise all-64-bit setup.
在_268951中添加VM参数(如常见的那样)在我的情况下是没有用的(因为我只有错误的JDK / JRE来关联 . )
我也无法找到如何检查这个Eclipse是32位还是64位版本(我无法在Task Manager中查找它,因为这个Eclipse 'installation'无法启动 . 而且因为它已经有一段时间了因为我已经设置了它,我也记不起它的版本了 . )
如果您使用较新的JDK和较旧的JRE,您也可能遇到麻烦,但是更有可能出现
java.lang.UnsupportedClassVersionError
,IIRC .谢谢misterfrb,我意识到了Eclipse给出了这个错误,因为我刚刚安装了Oracle 10g Developer suite,它正在
C:\DevSuiteHome_1
文件夹中查找jvm.dll
文件(我必须选择再次与开发人员套件一起安装JDK) .从paths变量中删除DevSuiteHome行并添加64位
jvm.dll
的更正位置(不确定是否有必要,没有尝试没有),Eclipse再次工作,Developer Suite也是如此 .从Java 6升级到Java 7后,我遇到了同样的问题 . 在我删除Java 6(64位)并重新安装Java 7(64位)之后,Eclipse工作了 . :)
我有同样的问题
我通过安装64位JVM解决了这个问题
http://www.java.com/en/download/manual.jsp
正如许多人已经提到的那样,这是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目录 .