Nie udało się załadować biblioteki współdzielonej JNI podczas uruchamiania Eclipse

27

Pobrałem najnowszą wersję Eclipse, ale nie mogę jej uruchomić.

Otrzymuję komunikat o błędzie:

Nie udało się załadować biblioteki współdzielonej JNI „C: \ Program Files (x86) \ Java \ jdk1.6.0_20 \ bin .. \ jre \ bin \ client \ jvm.dll”.

Jak to naprawić?

Używam 64-bitowego systemu Windows, 32-bitowego JDK i pobrałem 64-bitowe środowisko Eclipse.

Jonas
źródło
To jest dziwne. Plik jvm.dll powinien znajdować się w folderze C: \ Program Files (x86) \ Java \ jdk1.6.0_20 \ jre \ bin \ client \ jvm.dll, a nie w katalogu C: \ Program Files (x86) \ Java \ jdk1.6.0_20 \ bin \ ...
AndrejaKo

Odpowiedzi:

34

Zwykle dzieje się tak, jeśli masz 32-vs 64-bitowe niedopasowanie między zainstalowanymi wersjami JDK i Eclipse!

Twoja wersja Eclipse próbuje uzyskać dostęp do 32-bitowego JDK (jak wskazuje C: \ Program Files (x86) ), ale albo kończy się niepowodzeniem, ponieważ Eclipse oczekuje 64-bitowego JDK lub z powodu braku 32-bitowego JDK - w konsekwencji musisz odpowiednio dopasować wersje Eclipse i JDK.

Steffen Opel
źródło
Używam 64-bitowego systemu Windows, 32-bitowego JDK i pobrałem 64-bitowe środowisko Eclipse. Teraz z 32-bitowym Eclipse działa lepiej, dzięki.
Jonas
@Jonas - usunąłem błędne założenia dotyczące zainstalowanych wersji, dziękuję za zwrócenie na to uwagi poprzez określenie konfiguracji.
Steffen Opel
3

Zainstalowałem 64-bitowe wersje JDK i Eclipse, ale miałem ten sam problem ...

W końcu odkryłem, że moja %PATH%zmienna systemowa nie zawierała folderu. Nie zapomnij zmienić go na właściwy folder, w którym jest zainstalowany JDK \ bin. Pracował dla mnie.

RDB
źródło
2
-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

użyj Eclipse i OS zarówno 64-bitowych, jak i obu 32-bitowych

jayesh kavathiya
źródło
1

W systemie Windows 7 masz szansę na użycie dowiązań symbolicznych jak w Uniksie.

Tak więc za pomocą cmd(uruchom jako administrator) uruchom następujące polecenie: mklink /d jdk jdk-versionnr-etcnie musisz aktualizować ścieżki, JAVA_JOMEprzy następnej aktualizacji Java!

bud.minton
źródło
1

Miałem 64-bitowe środowisko Eclipse i 32-bitową Javę i miałem ten sam problem. Po zainstalowaniu 64-bitowej Java i aktualizacji ścieżki systemowej nie ma problemów.

Shankar K Pillai
źródło
1

Jeśli pobrałeś 64-bitowe środowisko Eclipse i 64-bitową wersję JDK / JRE, sprawdź dostępność javaw.exe dla wersji 64-bitowej.

W moim przypadku było C:\Program Files\Java\jre6\bin

Rozpakowałem Eclipse do c:\eclipsefolderu; w tym eclipse.iniplik jest dostępny. Zamień zawartość tego pliku na:

-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

Pozostaw nowy wiersz pomiędzy flagą -vm a wartością. To zadziałało dla mnie.

Ramkumar Lakshminarayanan
źródło
Dzięki. Wszystko, co zrobiłem, to skopiowałem wiersz „-vm C: \ Program Files \ Java \ jre6 \ bin \ javaw.exe”. Pozostawiłem wszystko inne takie same.
Stopher87
0

Napotkałem ten sam problem, mimo że miałem 64-bitowe wersje JDK i Eclipse. Dowiedziałem się, że brakuje ścieżki JDK w eclipse.ini.

Więc dodałem następujące wiersze w pliku eclipse.ini:

-vm
C:\Program Files\Java\jdk1.7.0_45\jre\bin <this might be different on your machine>

To rozwiązało problem! :-)

Nitinkumar Chobhe
źródło
0

Jeśli zaćmienie jest 64-bitowe, zaktualizuj Javę w ścieżce do C: \ Program Files \ Java \ jre7

albo

sprawdź lokalizację Java, do której odnosi się eclipse, i skopiuj zawartość C: \ Program Files \ Java \ jre7 do lokalizacji eclipse jre.

Odniesienie - http://www.buggybread.com/2013/01/failed-to-load-jni-shared-library.html

Vivek Vermani
źródło
0

1. Odinstaluj dostępny jdk7.1 (To był 64-bitowy) 2. Pobrano i zainstalowano jdk7.1 32-bitowy. Plik jvm.dll będzie znajdować się w następującej ścieżce: „C: \ Program Files (x86) \ Java \ jdk1.7.0_75 \ jre \ bin \ client”

Mam nadzieję, że to działa.

Charmy Vora
źródło
0

Aby rozwinąć odpowiedź Steffena Opla, występuje niezgodność między JVM określoną w pliku eclipse.ini a JVM napotkaną i uruchomioną w wyniku wpisów w zmiennej środowiskowej ścieżki Windows. Aby rozwiązać problem, upewnij się, że oba odnoszą się do tej samej maszyny JVM.

Aby rozwiązać ten problem, wykonaj następujące kroki:

1. Zmień konfigurację Eclipse, aby uruchamiała się z pożądaną wersją JVM
Otwórz eclipse.ini i zmień poniższy wiersz na wersję Java, której chcesz użyć, np .:

-Dosgi.requiredJavaVersion=1.5

2. Upewnij się, że Eclipse może uzyskać dostęp do JVM Wymagane jest przejście do
Panelu sterowania -> Edycja zmiennych środowiska systemowego -> Ścieżka.
    a) Upewnij się, że istnieje wpis w Twojej java
    b) Upewnij się, że ten wpis znajduje się wyżej (lub wcześniej) niż jakakolwiek inna ścieżka Java w twoim wpisie @path.

Mam nadzieję, że powinno to rozwiązać problem.

IqbalHamid
źródło
0

Chociaż jest to stare pytanie, pomyślałem o dodaniu bardziej odpowiednich informacji do odpowiedzi Zaakceptowanej udzielonej przez @Steffen Opel.

Możliwe jest zainstalowanie dowolnej liczby 32-bitowych JDK i 64-bitowych JDK w 64-bitowym systemie operacyjnym Windows. Możliwe jest również zainstalowanie 32-bitowego Eclipse i 64-bitowego Eclipse na tym samym komputerze. Aby jednak uruchomić jedną z wersji platformy Eclipse związanej z platformą (w przypadku 64-bitowego środowiska Eclipse ), komputer powinien mieć dopasowane „ zmienne środowiskowe ” skonfigurowane dla JDK. Można to zrobić (należy to zrobić) bez modyfikowania pliku eclipse.ini .

Zmienne środowiska

Aby uruchomić Javę bez podania pełnej ścieżki, należy dodać lokalizację pliku java.exe do PATHzmiennej środowiskowej. A także w przypadku niektórych narzędzi stron trzecich JAVA_HOMEwymagana jest również zmienna środowiskowa.

Zwykle programiści Java muszą zawsze mieć zainstalowany pakiet JDK (środowisko JRE jest zawarte w pakiecie JDK). I PATHjest ustawiony na folder „ bin ” w folderze instalacyjnym JDK (w przypadku OP C: \ Program Files \ Java \ jdk1.6.0_40 \ bin ), podczas gdy JAVA_HOMEjest ustawiony na folder instalacyjny JDK (w przypadku OP C: \ Program Files \ Java \ jdk1.6.0_40 ).

Tutaj OP ma tylko 32-bitowy JDK, ale próbuje użyć 64-bitowego środowiska Eclipse. Aby rozwiązać problem, OP musi zainstalować 64-bitowy JDK. I zmień JAVA_HOME& PATHZmienne środowiskowe ”, aby dopasować to miejsce instalacji.

Oto bardziej kompletne kroki:

  • Pobierz i zainstaluj 64-bitowy plik JDKx.x.x_xx
  • Następnie otwórz Eksploratora Windows, kliknij prawym przyciskiem myszy ikonę Komputer i wybierz

    Właściwości -> Zaawansowane ustawienia systemu .
    Otworzy się okno Właściwości systemu , a na karcie „ Zaawansowane ” wybierz „ Zmienne środowiskowe ”, aby otworzyć okno edycji.

  • W sekcji Zmienna systemowa poszukaj JAVA_HOMEnazwy zmiennej i kliknij przycisk „ Edytuj ” w dolnej części, jeśli nie jest dostępny, kliknij „ Nowy ” i wpisz C: \ Program Files \ Java \ jdk1.6.0_40 i kliknij OK.

  • Następnie wybierz PATHzmienną i kliknij „ Edytuj ” i dołącz %JAVA_HOME%\bin; do przodu lub %JAVA_HOME%\bindo końca istniejącego łańcucha. NIE zapisuj istniejącego ciągu i kliknij OK -> OK -> OK, aby zakończyć.

Teraz Eclipse będzie otwarte bez błędu.

Uwaga:

  • Jeśli ktoś musi użyć 32-bitowego środowiska Eclipse, domyślną ścieżką JDK będzie C: \ Program Files (x86) \ Java \ jdkx.x.x_xx

  • Podczas zmiany PATHzmiennych środowiskowych w systemie Windows 10 pojawi się dodatkowe okno, jak pokazano na poniższym obrazku.

wprowadź opis zdjęcia tutaj

Dush
źródło
0

Napotkałem ten sam problem, ale znalazłem rozwiązanie.

Sprawdź, czy Eclipse ma 32 lub 64 bity

  1. Jeśli jest 32-bitowy, ustaw JAVA_HOME na 32-bitową wersję jdk
  2. Jeśli Eclipse jest 64-bitowy, ustaw JAVA_HOME na 64-bitową wersję jdk
Arjun Kushwah
źródło