关于java:无法加载JNI共享库(JDK)

Failed to load the JNI shared Library (JDK)

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

Failed to load the JNI shared library"C:/JDK/bin/client/jvm.dll"`.

随后,Eclipseforce关闭。

以下是我想说的几点:

  • 我检查了一下那个路径上是否存在任何东西。它确实存在。
  • 我的Eclipse和JavaSE开发工具包都是64位的。我检查了我的系统,它可以处理64位。
  • 我在Google和Stack Overflow上搜索过这个问题,唯一的答案是下载32位版本的JDK和Eclipse。

下载32位版本是我唯一不想做的事情。如何解决这个问题?


你需要一个64位的三重奏

  • 64位操作
  • 64位的Java
  • 64位的日食


我们的工作对大学,JDK和日食。

  • 32位操作系统的32位的JDK的32位日食(32位只读)
  • 64位操作系统的32位的JDK的32位日食
  • 64位操作系统的64位的JDK日食- 64位(64位只读)

在several jdks仇恨和jres安装。

每个过去的仇恨他们自己输入的路径变量,全是更多或更少的工作。

判定"安装路径变量,这是完全无用的,因为他们是没有用的。当然,"不活动"型表壳,手动上弦JavaScript的-可以从在日食,如果需要,但我从来没有这样的,所以我真的没有需要他们。(至少在开始时的思想,所以……)

在cleaned IP的混乱,deinstalled全电流的Java JDK的安装,只jre 1.7 + 64位。

一部《月食afterwards设备失败。"Failed to Load the JNI shared Library和一个给定的路径的两个相对安装JDK的一种,它是思想的jvm.dll

"没有日食是唯一一个我所有的思想,还是这是一个32位的版本,否则对我全64位的设置。

世界杯类题元增,所以往往在eclipse.ini上述,我不使用(在我的案例,因为只有恨了JDK / jre来讲两个)。

我也找到了两个unable如何检查,如果这个日食是一个32位或64位版本(可以不看它的IP的任务管理器,这是因为Eclipse安装槽的"启动"。由于它已经和一段由于仇恨吗,我可以不记得它的版本它。)

在你使用案例A newer JDK和一个年长的jre可能是在对你有麻烦了,但后来它有可能会出现一java.lang.UnsupportedClassVersionError,IIRC。


确保你的eclipse.ini文件包括下面的线。

1
2
-vm
C:\path\to\64bit\java\bin\javaw.exe

例如:我的eclipse.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-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.ini CONFIG。

你的eclipse.ini文件可以被发现的日食在你的文件夹。


同样的问题在仇恨

在城市installing分辨它从64位JVM

www.java.com http:/ / / / /下载manual.jsp


这个错误意味着Eclipse的体系结构与Java运行时的体系结构不匹配,也就是说,如果一个是32位,另一个必须是相同的,而不是64位。

最可靠的修复方法是在eclipse.ini中指定JVM位置:

1
2
-vm
C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javaw.exe

重要提示:这两行必须在-vmargs之前。不要使用引号;允许使用空格。


另一个选择是:

创建eclipse.exe的快捷方式。打开快捷方式并将目标更改为:

1
"C:\Program Files\eclipse\eclipse.exe" -vm"c:\Program Files\Java\jdk1.7.0_04\bin\javaw.exe"

对于您的安装,请确保位置指向正确的Eclipse安装目录和正确的javaw.exe安装目录。

(当然,Eclipse和Java的64/32位版本需要相同。)


我安装了多个版本的Java,包括Sun JDK和JRoKIT,32位和64位等,并在JavaEE(朱诺)的64位Eclipse的新安装中遇到了这个问题。

什么不起作用:

彼得·雷德建议的64位三重奏:

我在64位操作系统(Windows7)上使用64位Eclipse。

我确保Sun JDK 7 64位是默认的Java版本。当我从命令行(CMD.exe)键入"Java-版本"时,返回了Sun JDK 7 64位…

1
2
3
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的建议,向eclipse.ini添加-vm选项:

我在eclipse.ini中添加了以下内容:

1
2
-vm
C:/apps/java/jdk7-64bit/bin/javaw.exe

注:

我不需要卸载我的机器上的JDK或JRE的任何不同版本。


A jvm.dll失踪的文件,我们可以提供的DLL文件路径的文件在eclipse.iniAA

1
2
-vm
C:\Progra~1\Java\jdk1.6.0_38\jre\bin\server\jvm.dll

在这里,它是重要的除去任何空间的路径和双quotes。 它为我工作的时候删除quotes和空间。

希望它helps人。


在有一个相似的问题。这是solved做以下。

  • 日全食的两步程序文件(而不是两个程序文件(x86)。
  • remove the path的32位版本的Java的"路径的环境变量。

有两个版本的Eclipse安装了Java,但想让使用32位的一个。


当然,您需要有JDK和Eclipse的兼容版本,但是您还需要在eclipse.ini文件中添加以下行:

1
2
-vm
yourdrive\java\bin

使它们成为您的eclipse.ini文件的前两行。


许多人已经alluded为两个,这是一个32位和64位的问题。两个日食和Java。你不能混合32和64位。由于日食不使用JAVA_HOME,你将可能有两个你的圣坛之前发射的日食路径两个确保你不只是用适当的Java版本,但也根据32或64位(或修改ini文件的jayath noted AA)。

如果你是从公司installing日全食的A股,你应该确保你可以告诉我你是unzipping日全食的版本,和两个适当的unzip ProgramFiles目录帮助保持跟踪,冰淇淋,然后改变它的路径(permanently(Windows),通过控制面板->系统或上(也许PATH=/path/to/32 or 64bit/java/bin;%PATH%create a如果你的批处理文件我不想看到它在你的系统和/或用户环境变量)。记住的,是在32位程序文件(x86)。

如果unsure,刚推出的日食,如果你把你的多径误差的变化,其他两位的Java版本,然后再试一次。然后移动的日全食的两个适当的目录程序文件目录。


或者,获取JRE和Eclipse的相同"位"版本,然后使用以下目标创建新的快捷方式(替换已安装的JRE和Eclipse位置/路径):

1
"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

这应该能解决问题。


你可以像其他人一样解决这个问题。您需要Eclipse和JDK在64位上都是32位或者都是32位。操作系统的体系结构并不重要,而其他操作系统仍在同一类型的arquiture上。


解决这个问题的一个简单方法是将jre文件夹从已安装的JDK复制到Eclipse安装文件夹中。确保从中复制的JDK与Eclipse安装的体系结构相同。

我必须这样配置我的机器,因为我在我的机器上运行Eclipse和Appcelerator Titanium Studio。Studio需要32位Java,而Eclipse需要64位。


以上的回答让我tempted我这么多,我决定干运行所有的可能的组合与我们,日食和JVM的三重奏。无论如何,无论浅谈挖冰下和阅读我的邮件,检查以下作为一个热点(在我的Windows 7用户 ;)。

  • 你了解程序文件和程序文件(x86)是两个不同的folders…在x86的32位版本和计划的类型是64位的版本。

  • 如果你有多个版本的Java安装与不同的苦涩和释版本有两个,这是它与这么多的开源IDE,行政管理,consoles选项,最好是直接看世界杯的eclipse.ini参数文件。如果你不去,日食会疯狂的寻找和清除它,这是不好的。


  • 您应该卸载所有旧的[JRE][1]然后安装最新的…我也有同样的问题,现在我解决了。我已经:

    最好安装JRE 6 32位。它真的很管用。


    是的,只要确保Eclipse和JDK的版本都是64位的。只是为了确保卸载的JDK都是正确的,并将其安装在程序文件中,而不是程序文件(x86)中。至少解决了我的问题。


    只需检查path环境变量。在my computer->properties->advanced system settings->environment variables->如果不存在,则用下面的方法创建它:> C:程序文件(x86)javajRe7in <

    在更新了Eclipse之后,我也面临同样的问题。我发现路径要求64位版本,但在DIF路径中有32位版本。这对我有帮助。附言:我有64位操作系统、32位JRE和32位Eclipse。一切正常:)


    简单的,有一个64位操作系统,32位和32两个日食JDK安装&;64…我uninstalled的64位的Java和Eclipse冰工作细。


    从站点下载64位JVM并手动安装它,并更新了系统路径变量。解决了这个问题。

  • 默认的JVM安装在我的系统中,在"C:程序文件"中(x86)javajRe7
  • 在中安装了手动安装的JVM"C:程序文件javajRe7",并在将此PATE更新为系统后它工作的路径变量。

  • 谢谢你misterfrb realised日全食,这是给这个错误,因为刚刚安装了Oracle 10g开发者套件,它是在看《jvm.dllC:\DevSuiteHome_1文件的文件夹(在一定opted JDK安装了两个沿与开发者套件)。

    在《devsuitehome解线从paths变量的位置校正和增为64位jvm.dll(不确定,如果这是必要的,不是没有尝试),挤压了日全食和开发者套件还不太多。


    同样的问题在仇恨升级后从两个Java Java 6 7。在删除Java 6(64位)和reinstalled Java 7(64位),日全食的工作。:)


    它是将两个关键的参数值和它的世界杯上以2线开始的eclipse.ini

    世界杯 C: 程序文件的Java jdk1.7.0 _ 45。javaw.exe仓。


    我想预防这个错误的另一个解决方案,特别是对于那些想在一个系统中使用32位和64位Eclipse的人。

    Eclipse将使用jre子目录中的jre/jdk(如果存在)启动。(STS或其他基于Eclipse的IDE也支持此功能…)

    解决方案是使用windows vista或更新版本中的mklink.exe命令创建目录连接(junction.exe为windows 2000/xp提供类似的功能)打开命令行窗口并执行以下命令:

    mklink /j"$ECLIPSE-HOME/jre""$JDK_or_JRE_home"

    当然,如果Eclipse用于64位窗口,那么JDK/JRE的体系结构必须相同。

    假设:

    • Eclipse for windows x86_64安装在d:devtooleclipse中
    • EDCOX1(4)被安装在C:程序文件javaJDK1.8中

    创建jre文件夹的命令是:

    mklink /j"d:\devTool\eclipse\jre""C:\Program Files\Java\jdk1.8.0"

    顺便说一句,删除目录连接不会删除任何文件。如果创建了错误的链接,可以使用文件资源管理器或rmdir命令将其删除。

    rmdir"d:\devTool\eclipse\jre"


    确保使用管理员权限启动Eclipse。


    您已经在环境变量中更改了java_Home和path的正确版本。


    在Eclipse的下载页面上,应该写"JRE 32位"或"JRE 64位",而不是"Windows 32位"或"Windows 64位"。

    如前所述,请确保使用与JDE兼容的正确版本。


    在我不确定为什么我恨我的jre安装到C: Windows目录和java.exe和javaw.exe在我的Windows System32目录。

    很明显,这些目录是得到优先的综合平衡后的世界杯,我的eclipse.ini旗下的两个文件。

    删除他们从这里固定我的问题。


    我occurred一样。在64位的日全食的仇恨,但我的JDK是32位的。所以在安装64位版本的它现在的好。


    如果你使用全64位的三重奏,它仍然不工作(在我来这两个问题在发射显示器在Android IntelliJ理念),可能就是错误的jvm.dll使用你的Java opposed两expects。只是遵循这些步骤:

  • 找到在你的jvm.dll jre目录: C:\Program Files\Java\jre7\server\bin\jvm.dll

  • 找到在你的jvm.dll JDK的目录: c:\Program Files\Java\jdk1.7.0_xx\jre\bin\server\

  • 从《jvm.dll拷贝jre drectory进入你的JDK的目录和重写《jvm.dll在JDK。

  • 不要忘记做一个备份,以防万一。不需要安装或卸载任何相关的Java。


    与PDT的Zend -避免用户下载页,它不需要任何的64位的下载连结。

    使用< >《罢工的网站本身。/履约> <

    上面的链接是年长的仇恨,那么Eclipse 3.6更新失败本身#鸽腹317785日全食。

    我的解决方案是完全安装32位和64位的Java同时允许在这两个网站上安装工作。

    它的depressing,日全食的Java /金额未去通过一个有两个得到一个PHP的主意。


    您可以在64位计算机上安装32位版本的JDK。参见JDK 7下载。


    在我的案例,我想从命令行启动Java和错误提示了这

    Error: could not open"C:\Windows\jre\lib\amd64\jvm.cfg"

    它意味着"Java"看起来是对的路径出发的这一错误的目录。deleting文件夹"C: Windows。jre solved的问题。


    在所有的治疗有日全食的错误这是一个他们。这个冰日全食的64位版本。下载《32位版本和启动它。


    最简单的解决方案是在eclipse.ini中包含特定的JRE:

    wiki.eclipse.org/eclipse.ini

    通过这个,您几乎可以启动任何Eclipse版本。


    这个错误我们得到的是因为不同的Java版本下载32位版本。


    安装JDK 1.8._91(混合模式)是另一种解决方案!


    在仇恨一样的问题。与我们所有的64位应该是64位的。 Java和Eclipse。 我想所有的方法在stackoverflow鸭也在YouTube上。不,我过去工作中发现的untill这容易的方法。

    在CNET安装64位的Java下载和自动的问题是固定的。 在上述《冰源,因为它太容易去谷歌(Google)和两个第一的皮棉而不是CNET网站,如果你在一个新的蜜蜂。

    另外,如果你有被称为Android和ADT Eclipse从两个开它,得到了同样的错误,你可以把你和这一问题的方法。