无法加载JNI共享库(JDK)

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

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

在此之后,Eclipse部队关闭。

以下是我想说的几点:

  • 我检查了一下在这条路上是否有任何东西存在。 它确实存在。
  • 我的Eclipse和Java SE开发工具包都是64位的。 我检查了我的系统,它可以处理64位。
  • 我在Google和Stack Overflow上搜索了这个问题,我发现的唯一答案是下载32位版本的JDK和Eclipse。
  • 下载32位版本是我只想做的最后一招。
    会有什么建议来解决这个问题?


    你需要一个64位三重奏:

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

  • 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内部手动引用“非活动”Java,但我从来没有这样做,所以我真的不需要它们。 (至少我那时候是这么想的......)

    我清理了这个烂摊子,卸载了所有当前的Java,只安装了JDK + JRE 1.7 64位。

    其中一个Eclipse“安装”之后Failed to Load the JNI shared Library以及相对于全新安装的JDK的给定路径,它认为jvm.dll是。

    失败的Eclipse是我所有IDE中唯一一个在我的全64位设置上仍然是32位版本的IDE。

    在我的情况下,在eclipse.ini中添加虚拟机参数(如经常提到的那样)是没有用的(因为我只有错误的JDK / JRE与之相关)。

    我也无法知道如何检查这个Eclipse是32位还是64位版本(我无法在任务管理器中查找它,因为这个Eclipse的“安装”不会启动。自从我设置它之后已经有一段时间了,我也不记得它的版本。)

    如果您使用较新的JDK和较旧的JRE,您也可能会遇到麻烦,但是这很可能会出现java.lang.UnsupportedClassVersionError IIRC。


    确保你的eclipse.ini文件包含以下几行。

    -vm
    C:pathto64bitjavabinjavaw.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 FilesJavajdk1.6.0_32binjavaw.exe
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    -vmargs
    -Dosgi.requiredJavaVersion=1.5
    -Xms40m
    -Xmx512m
    

    使用OS和Eclipse 64位或两个32位保持相同并配置eclipse.ini

    你的eclipse.ini文件可以在你的eclipse文件夹中找到。

    链接地址: http://www.djcxy.com/p/37567.html

    上一篇: Failed to load the JNI shared Library (JDK)

    下一篇: Eclipse HotKey: how to switch between tabs?