Не удалось загрузить общую библиотеку JNI (JDK) - PullRequest
901 голосов
/ 08 сентября 2011

Когда я пытаюсь открыть Eclipse , всплывающее диалоговое окно сообщает:

Не удалось загрузить общую библиотеку JNI "C: / JDK / bin / client / jvm.dll "`.

После этого сила Затмения закрывается.

Вот несколько моментов, которые я хотел бы сделать:

  • Я проверил, чтобы увидетьесли что-то существует на этом пути.Это существует.
  • My Eclipse и Java SE Development Kit оба являются 64-разрядными.Я проверил свою систему, и она может обрабатывать 64-разрядные.
  • Я искал эту проблему в Google и в Stack Overflow, и единственный ответ, который я нашел, это загрузить 32-разрядные версии JDK и Eclipse.

Загрузка32-разрядные версии - это то, что я хочу сделать только в крайнем случае.
Что бы предложить для решения этой проблемы?

Ответы [ 38 ]

832 голосов
/ 12 сентября 2011

Вам необходимо 64-битное трио:

  • 64-битная ОС
  • 64-битная Java
  • 64-битное Eclipse
303 голосов
/ 09 января 2012

Рабочие пары ОС, JDK и Eclipse:


  • 32-битная ОС - 32-битная JDK - 32-битная Eclipse (только 32-битная)
  • 64-разрядная ОС - 32-разрядная JDK - 32-разрядная Eclipse
  • 64-разрядная ОС - 64-разрядная JDK - 64-разрядная Eclipse (только 64-разрядная)

У меня было установлено несколько JDK и JRE.

У каждого из них была своя запись в переменной PATH, все работали более или менее.

Судя по переменным PATH, некоторые установки были совершенно бесполезны, так как они никогда не использовались.Конечно, на «неактивные» Javas можно было ссылаться вручную из Eclipse, если бы я нуждался, но я этого никогда не делал, поэтому они мне действительно не нужны.(По крайней мере, я так думал в то время ...)

Я убрал беспорядок, удалил все текущие Java, установил только JDK + JRE 1.7 64-bit.

Одна из «установок» Eclipse впоследствии потерпела неудачу с Failed to Load the JNI shared Library и заданным путем относительно нового установленного JDK, где он думал, что jvm.dll будет.

Отказавший Eclipse был единственным из всех моих IDE, который все еще был 32-битной версией в моей, в целом, все-64-битной установке.

Добавление аргументов VM, как это часто случаетсяупомянуто, что eclipse.ini не использовалось в моем случае (потому что у меня был только неправильный JDK / JRE, чтобы иметь отношение к нему.)

Я также не смог выяснить, как проверить, было ли это Затмение 3264-битная или 64-битная версия (я не смог найти ее в Task Manager , так как эта «установка» Eclipse не запустилась. И поскольку прошло некоторое время с тех пор, как я ее настроил,Я также не мог вспомнить его версию.)

В случае, если вы используете более новый JDK и более старый JRE , у вас тоже могут быть проблемы, но тогда это скорее всего java.lang.UnsupportedClassVersionError появляется IIRC .

258 голосов
/ 13 марта 2012

Убедитесь, что ваш файл 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

Используйте ОС и Eclipse, как 64-битные, так и 32-битные.

Ваш файл eclipse.ini находится в папке eclipse.

57 голосов
/ 07 октября 2011

У меня была такая же проблема

Я решил это, установив 64-битную JVM из

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

40 голосов
/ 20 ноября 2014

Эта ошибка означает, что архитектура Eclipse не соответствует архитектуре среды выполнения Java, т. Е. Если один 32-битный, другой должен быть таким же, а не 64-битным.

Самое надежное исправление - указать местоположение JVM в eclipse.ini:

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

Важно: Эти две строки должны идти перед -vmargs. Не используйте кавычки; пробелы разрешены.

32 голосов
/ 21 июня 2012

Другой вариант:

Создать ярлык для Eclipse.exe. Откройте ярлык и измените цель на:

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

Для вашей установки, убедитесь, что места указывают на правильный каталог установки Eclipse и правильный каталог установки javaw.exe.

(Конечно, 64/32-битные версии Eclipse и Java должны быть одинаковыми.)

29 голосов
/ 02 октября 2012

У меня установлено несколько версий Java, как Sun JDK, так и JRockit, как 32-разрядных, так и 64-разрядных, и т. Д., И я столкнулся с этой проблемой при новой установке 64-разрядной версии Eclipse для Java EE (JUNO).

Что сработало НЕ :

64-битное трио, как предложил Питер Рэйдер:

Я использую 64-битный Eclipse на 64-бит ОС (Windows 7).

Я обеспечил, чтобы 64-разрядная версия Sun JDK 7 была версией Java по умолчанию.Когда я набрал "java -version" из командной строки (cmd.exe), был возвращен 64-битный Sun JDK 7 ...

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)

Это не решило проблему для меня.

Что DID работа:

Добавление опции -vm в eclipse.ini, как предложено Джаешем Каватия:

Я добавил следующее в eclipse.ini:

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

Примечание:

Мне не пришлось удалять ни одну из различных версий JDK или JRE, установленных на моем компьютере.

17 голосов
/ 05 марта 2013

Для отсутствующего файла jvm.dll мы можем указать путь к файлу DLL в файле eclipse.ini как

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

. Здесь важно удалить все пробелы в пути и двойные кавычки.,Это сработало для меня, когда я удалил кавычки и пробел.

Надеюсь, это кому-нибудь поможет.

10 голосов
/ 29 ноября 2011

У меня была похожая проблема.Было решено сделать следующее:

  • Переместить Eclipse в Программные файлы (не в Программные файлы (x86) ).
  • Удалитьпуть к 32-разрядной версии Java из переменной среды path.

У меня установлены обе версии Java, но Eclipse продолжал пытаться использовать 32-разрядную версию.

9 голосов
/ 09 мая 2012

Конечно, вам нужна совместимая версия JDK и Eclipse, но вам также нужно добавить в файл eclipse.ini следующие строки:

-vm
yourdrive\java\bin

Сделайте их первыми двумя строками вашего файла.eclipse.ini файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...