当我尝试打开Eclipse时,弹出对话框显示:
加载JNI共享库“C:/JDK/bin/client/jvm.dll”失败。
在此之后,Eclipse部队关闭。
以下是我想说的几点:
我查了下那条路径上有没有东西。它确实存在。
我的Eclipse和Java SE Development Kit都是64位的。我检查了我的系统,它可以处理64位。
我在谷歌和Stack Overflow上搜索过这个问题,我找到的唯一答案是下载32位版本的JDK和Eclipse。
下载32位版本是我想做的最后一件事。
如何解决这个问题?
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。
确保您的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文件夹中找到。