Kan de JNI gedeelde bibliotheek (JDK) niet laden

Als ik Eclipseprobeer te openen, verschijnt er in een pop-upvenster:

Kan de JNI gedeelde bibliotheek “C:/JDK/bin/client/jvm.dll”` niet laden.

Hierna wordt de Eclipse-kracht gesloten.

Hier zijn een paar punten die ik wil maken:

  • Ik heb gecontroleerd of er iets bestaat op dat pad. Het bestaat.
  • Mijn Eclipse en Java SE Development Kitzijn beide 64-bits. Ik heb mijn systeem gecontroleerd en het kan 64-bit aan.
  • Ik heb naar dit probleem gezocht op Google en op Stack Overflow, en het enige antwoord dat ik vond was het downloaden van de 32-bits versies van JDK en Eclipse.

Het downloaden van de 32-bits versies is iets wat ik alleen als allerlaatste redmiddel wil doen.
Wat zou worden voorgesteld om dit probleem op te lossen?


Antwoord 1, autoriteit 100%

Je hebt een 64-bittrio nodig:

  • 64-bitOS
  • 64-bitJava
  • 64-bitEclipse

Antwoord 2, autoriteit 37%

Werkende koppelingen van OS, JDK en Eclipse:


  • 32-bitOS| 32-bitJDK| 32-bitEclipse(alleen 32-bits)
  • 64-bitOS| 32-bitJDK| 32-bitEclipse
  • 64-bitOS| 64-bit JDK| 64-bitEclipse(alleen 64-bits)

Ik had verschillende JDK’s en JRE’s geïnstalleerd.

Elk van hen had zijn eigen invoer in de PATH-variabele, alles werkte min of meer.

Afgaande op de PATH-variabelen waren sommige installaties volkomen nutteloos, omdat ze nooit werden gebruikt. Natuurlijk kan er vanuit Eclipse handmatig naar de “inactieve” Java’s worden verwezen als ik dat nodig had, maar dat heb ik nooit gedaan, dus ik had ze echt niet nodig. (Dat dacht ik toen tenminste…)

Ik heb de rommel opgeruimd, alle huidige Java’s gedeïnstalleerd, alleen JDK + JRE 1.7 64-bit geïnstalleerd.

Een van de ‘installaties’ van Eclipse mislukte daarna met de Failed to Load the JNI shared Libraryen een bepaald pad ten opzichte van de vers geïnstalleerde JDK waar het dacht dat de jvm.dllte zijn.

De falende Eclipse was de enige van al mijn IDE’s die nog steeds een 32-bits versie was op mijn verder volledig 64-bits installatie.

Het toevoegen van VM-argumenten, zoals zo vaak genoemd, in de eclipse.inihad in mijn geval geen zin (omdat ik alleen de verkeerde JDK/JRE had om mee te werken.)

Ik kon er ook niet achter komen hoe ik kon controleren of deze Eclipse een 32-bits of 64-bits versie was (ik kon het niet opzoeken in de Taakbeheer, aangezien deze Eclipse ‘installatie’ niet wilde opstarten. En aangezien het een tijdje geleden was dat ik het had ingesteld, kon ik me ook de versie niet herinneren. )

Als je een nieuwere JDK en een oudere JREgebruikt, heb je misschien te maken met ook problemen, maar dan is de kans groter dat er een java.lang.UnsupportedClassVersionErrorverschijnt, IIRC.


Antwoord 3, autoriteit 31%

Zorg ervoor dat uw eclipse.ini-bestand de volgende regels bevat.

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

My eclipse.iniBijvoorbeeld:

-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

Gebruik OS en Eclipse, zowel 64 bit of beide 32 bit houden dezelfde en configuratie eclipse.ini.

Uw eclipse.iniBestand is te vinden in uw Eclipse-map .


4, Autoriteit 7%

Ik had hetzelfde probleem

Ik heb het opgelost door 64-bits JVM te installeren van

http://www.java.com/en/download/manual.jsp


5, Autoriteit 5%

Deze fout betekent dat de architectuur van de Eclipse niet overeenkomt met de architectuur van de Java-runtime, d.w.z. als iemand 32-bits is, moet de andere hetzelfde zijn, en niet 64-bit.

De meest betrouwbare fix is ​​om de JVM-locatie in Eclipse.ini te specificeren:

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

Belangrijk: Deze twee regels moeten vóór -vmargs komen. Gebruik geen offertes; ruimtes zijn toegestaan.


6, Autoriteit 4%

Een andere optie is:

Maak een snelkoppeling naar de Eclipse.exe. Open de snelkoppeling en verander het doel in:

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

Zorg er voor uw installatie voor dat de locaties verwijzen naar de juiste Eclipse-installatiemap en de juiste javaw.exeinstallatiemap.

(De 64/32-bits versies van Eclipse en Java moeten natuurlijk hetzelfde zijn.)


Antwoord 7, autoriteit 3%

Ik heb meerdere versies van Java geïnstalleerd, zowel Sun JDK & JRockit, zowel 32-bits als 64-bits, enz. en kwam dit probleem tegen met een nieuwe installatie van 64-bits Eclipse voor Java EE (JUNO).

Wat werkte NIET:

64-bit trio zoals voorgesteld door Peter Rader:

Ik gebruik 64-bits Eclipse op 64-bits besturingssysteem (Windows 7).

Ik heb ervoor gezorgd dat Sun JDK 7 64-bit de standaard Java-versie was. Toen ik “java -version” typte vanaf de opdrachtregel (cmd.exe), werd Sun JDK 7 64-bit geretourneerd…

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)

Dit heeft het probleem niet voor mij opgelost.

Wat DIDwerkte:

Toevoegen van -vm optie aan eclipse.ini zoals voorgesteld door Jayesh Kavathiya:

Ik heb het volgende toegevoegd aan eclipse.ini:

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

Opmerking:

Ik hoefde geen van de verschillende versies van JDK of JRE die ik op mijn computer heb, te verwijderen.


Antwoord 8, autoriteit 2%

Voor een ontbrekend jvm.dll-bestand kunnen we het pad van het dll-bestand in het eclipse.ini-bestand opgeven als

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

Hier is het belangrijk om elke ruimte in het pad en de dubbele aanhalingstekens te verwijderen.
Het werkte voor mij toen ik de citaten en ruimte verwijderde.

Ik hoop dat het iemand helpt.


9

Ik had een soortgelijk probleem. Het was opgelost het volgende.

  • Verplaats Eclipse naar Programmabestanden (niet op Programmabestanden (X86) ).
  • Verwijder het pad naar de 32-bits versie van Java van de variabele ‘Pad’.

Ik heb beide versies van Java geïnstalleerd, maar Eclipse probeerde de 32-bits één te gebruiken.


10

Zoals veel mensen al opzicht hebben, is dit een probleem van 32 versus 64 bit voor zowel Eclipse en java . Je kunt 32 en 64 bit niet mengen. Aangezien Eclipse niet gebruikt JAVA_HOME, moet u waarschijnlijk uw pad wijzigen voordat u de verduistering wilt starten om ervoor te zorgen dat u niet alleen de juiste versie van Java gebruikt, maar ook indien 32 of 64 bit (of Wijzig het INI-bestand als Jayath opgemerkt).

Als u Eclipse installeert van een bedrijfsaandeel, moet u ervoor zorgen dat u kunt zien welke Eclipse-versie u uitkijkt, en unzipt naar de juiste -programmabestanden -map om bij te houden wat het is en wijzig vervolgens het pad (permanent via (Windows) bedieningspaneel – & GT; systeem of ingesteld PATH=/path/to/32 or 64bit/java/bin;%PATH%(Misschien een batch maken Bestand Als u het niet wilt instellen in uw systeem- en / of gebruikersomgevingvariabelen). Onthoud, 32-bit zit in Programmabestanden (X86) .

Als u niet zeker bent, start Eclipse, als u de fout krijgt, verander uw pad naar de andere ‘bit’-versie van Java en probeer het dan opnieuw. Verplaats vervolgens de Eclipse-map naar de juiste -programmabestanden -gids.


11

De antwoorden boven mij hebben me zoveel verleid, dat ik besloot om te drogen om alle mogelijke combinaties met OS, Eclipse en jvm trio. Hoe dan ook, Degene die naar beneden graaft en mijn bericht leest, controleer het volgende als een hotspot (ik ben Windows & Nbsp; 7 gebruiker).

  1. U begrijpt programmabestanden en programmeerbestand (x86) zijn twee verschillende mappen … x86 staat voor de 32- Bitversie van programma’s en de eerste is de 64-bits versie.

  2. Als je meerdere versies van Javahebt geïnstalleerd met verschillende bitness en releaseversies, wat ongetwijfeld zal gebeuren met zoveel open source IDE’s, managers, beheerconsoles, de beste optie is om het VM-argument rechtstreeks in het bestand eclipse.iniin te stellen. Als je dat niet doet, zal Eclipse gek worden en zichzelf proberen te zoeken, wat niet goed is.


Antwoord 12

Als alternatief kunt u dezelfde “bit”-versie van JREen Eclipse verkrijgen en vervolgens maken een nieuwe snelkoppeling met het onderstaande doel (vervang de geïnstalleerde JRE en Eclipse locatie/pad):

"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

Dat zou voldoende moeten zijn.


Antwoord 13

Een van de makkelijke manieren om dit op te lossen, is door de map jrevan de geïnstalleerde JDK naar de Eclipse-installatiemap te kopiëren. Zorg ervoor dat de JDK waaruit u kopieert dezelfde architectuur heeft als uw Eclipse-installatie.

Ik moest mijn machine op die manier configureren, omdat ik zowel Eclipse als Appcelerator Titanium Studiogebruik op mijn automaat. De Studio heeft 32-bit Java nodig, terwijl Eclipse 64-bit nodig heeft.


Antwoord 14

Ja, zorg ervoor dat uw versies van Eclipse en JDKbeide 64-bits zijn. Om er zeker van te zijn dat alles correct is, verwijdert u JDK en installeert u het in Program Filesen niet in Program Files (x86). Dat loste tenminste mijn probleem op.


Antwoord 15

Controleer gewoon de PATH-omgevingsvariabele. In Mijn computer– > Eigenschappen-> Geavanceerde systeeminstellingen -> Omgevingsvariabelen-> (linker bovenvenster “Gebruikersvariabelen voor “een naam van pc””) vink gewoon de PATH-variabele aan. Als het niet bestaat, maak het dan als volgt aan — > C:\Program Files (x86)\Java\jre7\bin <–

Ik had hetzelfde probleem nadat ik mijn Eclipse had bijgewerkt. Ik heb ontdekt dat het pad de 64-bits versie vroeg, maar ik had de 32-bits in het dif-pad. Het was nuttig voor mij. P.S.: Ik heb een 64-bits besturingssysteem, 32-bits JRE en 32-bits Eclipse. Alles werkt prima 🙂


Antwoord 16

Je moet alle oude [JRE’s][1] verwijderen en dan de nieuwste installeren… Ik had hetzelfde probleem en nu los ik het op. Ik heb:

Installeer Jre 6 32 bit beter. Het werkt echt.


Antwoord 17

64-bits JVM gedownload van de site en handmatig geïnstalleerd en de systeempadvariabele bijgewerkt. Dat loste het probleem op.

  1. De standaard JVM die op mijn systeem is geïnstalleerd, stond in “C:\Program Files
    (x86)\Java\jre7″
  2. Handmatig geïnstalleerde JVM is geïnstalleerd in
    “C:\Program Files\Java\jre7” en na het updaten van deze versie naar systeem
    padvariabele het werkte.

Antwoord 18

Bedankt misterfrb, ik realiseerde me dat Eclipse deze fout gaf, omdat ik zojuist Oracle 10g Developer suite, en het zocht naar het bestand jvm.dllin de map C:\DevSuiteHome_1(ik moet ervoor hebben gekozen om JDK opnieuw te installeren samen met de ontwikkelaarssuite).

Na het verwijderen van de DevSuiteHome-regels uit de paths-variabele en het toevoegen van de correctielocatie voor 64-bits jvm.dll(niet zeker of dit nodig was, niet zonder geprobeerd), werkte Eclipse weer, en Developer Suite ook nog steeds.


Antwoord 19

Eenvoudig, ik heb een 64-bits besturingssysteem, 32-bits Eclipseen zowel JDK 32 & amp; 64 geïnstalleerd… Ik heb zojuist de 64-bits JDK verwijderd en Eclipse werkt prima..


Antwoord 20

Ik had hetzelfde probleem na het upgraden van Java 6 naar Java 7. Nadat ik Java 6 (64 bit) had verwijderd en Java 7 (64 bit) opnieuw had geïnstalleerd, werkte Eclipse. 🙂


Antwoord 21

Het is cruciaal om de parameter -vm en zijn waarde op 2 regels toe te voegen AAN HET BEGIN van de eclipse.ini

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe


Antwoord 22

U hebt de juiste versie van JAVA_HOME en PATH gewijzigd in omgevingsvariabelen.


Antwoord 23

Ik wil een andere oplossing voor deze fout bieden, vooral voor wie 32-bits en 64-bits Eclipse in één systeem wil gebruiken.

Eclipse zal opstarten met behulp van de JRE/JDK in de jresubmap als deze bestaat. (STS of andere op eclips gebaseerde IDE ondersteunen deze functie ook…)

De oplossing is het maken van een directoryknooppunt met de opdracht mklink.exedie bestaat in Windows Vista of een nieuwere versie (junction.exebiedt vergelijkbare functie voor Windows 2000/XP)
Open de opdrachtregelvensters en voer de volgende opdracht uit:

mklink /j “$ECLIPSE-HOME/jre” “$JDK_or_JRE_home”

Als de Eclipse voor 64-bits Windows is, moet de architectuur van JDK/JREnatuurlijk hetzelfde zijn.

Stel:

  • Eclipse for windows x86_64is geïnstalleerd in d:\devTool\eclipse
  • JDK for windows x64is geïnstalleerd in C:\Program Files\Java\jdk1.8.0

De opdracht voor het maken van de map jreis:

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

BTW, verwijder directory junction zal NIETeen bestand verwijderen. Als u een verkeerde link maakt, kunt u deze verwijderen met de bestandsverkenner of de opdracht rmdir.

rmdir “d:\devTool\eclipse\jre”


Antwoord 24

Zorg ervoor dat u Eclipse start met beheerdersrechten.


Antwoord 25

Als je het hele 64-bits trio gebruikt en het werkt nog steeds niet (ik ben op dit probleem gekomen tijdens het starten van Android Monitor in Intellij Idea), wordt waarschijnlijk verkeerde jvm.dll gebruikt, in tegenstelling tot wat je Java verwacht. Volg gewoon deze stappen:

  1. Zoek de jvm.dll in uw JRE-directory:
    C:\Program Files\Java\jre7\server\bin\jvm.dll

  2. Zoek de jvm.dll in uw JDK-directory:
    c:\Program Files\Java\jdk1.7.0_xx\jre\bin\server\

  3. Kopieer de jvm.dllvan JRE DRANCORY naar uw JDK-directory en overschrijf de JVM.DLL in JDK.

Vergeet niet om een back-up te maken, voor het geval dat. U hoeft niets te installeren of te verwijderen met betrekking tot JAVA.


26

Hetzelfde gebeurde bij mij. Ik had 64-bit eclips, maar mijn JDK was 32-bit. Dus installeerde ik de 64-bit-versie en het is nu goed.


27

Ik weet niet zeker waarom, maar ik had de JRE geïnstalleerd in mijn map C: \ Windows en Java.exe en Javaw.exe in mijn Windows \ System32-directory.

Uiteraard kregen deze mappen voorrang, zelfs na het toevoegen van de VLAG van de VM aan mijn eclipse.ini-bestand.

Verwijder ze van hier vastgesteld het probleem voor mij.


28

Op de downloadpagina van Eclipse moet het worden geschreven “JRE 32 BITS” of “JRE 64 BITS” en niet “Windows 32 BITS” of “Windows 64 BITS”.

Zorg ervoor dat u de juiste versie compatibel met uw JDE gebruikt, zoals eerder beantwoord.

Other episodes