启动Eclipse时加载JNI共享库失败。
我下载了最新版本的Eclipse,但我无法启动它。
我得到的错误信息是。
Failed to load the JNI shared library “C:\Program Files (x86)\Java\jdk1.6.0_20\bin…\jre\bin\client\jvm.dll"。
我如何解决这个问题?
我使用64位Windows,32位JDK,并下载了64位Eclipse。
我下载了最新版本的Eclipse,但我无法启动它。
我得到的错误信息是。
Failed to load the JNI shared library “C:\Program Files (x86)\Java\jdk1.6.0_20\bin…\jre\bin\client\jvm.dll"。
我如何解决这个问题?
我使用64位Windows,32位JDK,并下载了64位Eclipse。
如果您安装的 JDK 和 Eclipse 版本之间存在 32 位与 64 位不匹配的情况,通常会发生这种情况!
您的Eclipse版本试图访问32位JDK (如C:\Program Files (x86)所示),但要么失败,因为Eclipse期待64位JDK,要么因为32位JDK缺失–因此,您需要确保Eclipse和JDK版本在位数上相应匹配。
-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/jre/bin
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
同时使用eclipse和os 64位或32位
我有一个64位的Eclipse和32位的Java,有同样的问题。安装64位Java和更新system path后,没有问题。
如果你下载了64位的Eclipse和64位的JDK/JRE,请检查64位的javaw.exe是否可用。
在我的例子中,它在C:\Program Files\Java\jre6\bin
我已经将Eclipse解压到c:\eclipse
文件夹中;在该文件夹中,eclipse.ini
文件是可用的。将该文件的内容替换为以下内容。
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-vm
C:\Program Files\Java\jre6\bin\javaw.exe
-framework
plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xmx700m
-XX:MaxPermSize=690M
在-vm标志和值之间留出新行。这对我来说是有效的。
在Windows 7上,你有机会像在unix下一样使用符号链接。
所以用cmd
(以管理员身份运行),运行以下内容。mklink /d jdk jdk-versionnr-etc
你不需要更新你的路径,JAVA_JOME
在你下次更新Java的时候!
虽然这是一个老问题,但我想在 @Steffen Opel 给出的 Accepted answer 中补充一些相关信息。
在64位的Windows操作系统中,可以安装任意数量的32位JDKs和64位JDKs。也可以在同一台电脑上安装32位的Eclipse和64位的Eclipse。但是要运行其中一个与平台相关的Eclipse (在上位机的例子中是64位Eclipse)版本,机器应该为JDK配置匹配的"环境变量"。这可以在不修改eclipse.ini_文件的情况下完成。
环境变量
要在不提供完整路径的情况下运行java,需要将java.exe的文件位置添加到PATH
环境变量中。对于一些其他的第三方实用程序,JAVA_HOME
环境变量也是必须的。
通常java开发者总是需要安装JDK(JRE包含在JDK中)。而PATH
被设置为JDK安装文件夹下的"bin“文件夹(在OPs的情况下C:\Program Files\Java\jdk1.6.0\40/bin),而JAVA_HOME
被设置为JDK安装文件夹(在OPs的情况下C:\Program Files\Java\jdk1.6.0\40)。
这里OP只有32位的JDK,但却试图使用64位的Eclipse。所以要解决这个问题,OP需要安装64位JDK。并修改JAVA_HOME
& PATH
”Environment Variables“ 来匹配安装位置。
下面是比较完整的步骤:
然后打开Windows资源管理器,在计算机图标上点击右键,选择
在系统变量部分寻找JAVA_HOME
变量名,点击底部的”Edit“按钮,如果没有,点击”New“,输入C:/Program Files/Java/jdk1.6.0/40然后点击确定。
然后选择PATH
变量,并点击”Edit“,将%JAVA_HOME%\bin
;追加到现有字符串的前面或%JAVA_HOME%\bin
的最后。不要重写现有的字符串,然后点击 "确定”->“确定”->“确定 "完成。
现在Eclipse将被打开,没有错误。
注意:
如果有人需要使用32位的Eclipse,那么默认的JDK路径将是C: Program Files (x86)_Java\jdkx.x.xxx_
在Windows 10中更改PATH
环境变量时,会出现一个额外的窗口,如下图所示。
如果eclipse是64位的,更新路径中的Java为C:\Program Files\Java\jre7
否则
检查eclipse引用的Java位置,并复制C:\Program Files\Java\jre7内容到eclipse的jre位置。
参考 - http://www.buggybread.com/2013/01/failed-to-load-jni-shared-library.html 。
详述Steffen Opel的答案,eclipse.ini文件中指定的JVM和Windows路径环境变量中的JVM不匹配。所以要解决这个问题,请确保它们都指向同一个JVM。
要解决这个问题,请按照以下步骤进行。
1. 修改Eclipse配置,使其以所需的JVM版本启动 打开eclipse.ini,将下面的一行改为你想使用的java版本,例如:
-Dosgi.requiredJavaVersion=1.5
2. 确保Eclipse能够访问它所需要的JVM
进入控制面板–>编辑系统环境变量–>路径。
a) 确保在这里有一个进入你的java
b) 确保这个条目比你的@path条目中的任何其他java路径更高(或更早)。
希望这能为你解决这个问题。
尽管我有64位版本的JDK和Eclipse,但我也面临同样的问题。我发现eclipse.ini文件中缺少JDK的路径。
所以我在eclipse.ini文件中添加了以下几行。
-vm
C:\Program Files\Java\jdk1.7.0_45\jre\bin <this might be different on your machine>
这就解决了问题。:-)
我也遇到过同样的问题,但我得到了解决方案。
检查Eclipse是32位还是64位,然后
1.如果是32位,则将JAVA/_HOME设置为32位版本的jdk 2. 如果Eclipse是64位,则将JAVA/_HOME设置为64位版本的jdk。
1.卸载可用的jdk7.1(原来是64位的) 2.下载并安装jdk7.1 32位。2.下载并安装jdk7.1 32位。jvm.dll将在下面的路径中。"C:\Program Files (x86)\Java\jdk1.7.0_75\jre\bin\client"
希望能成功。