Не удалось загрузить общую библиотеку JNI (JDK)

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

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

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

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

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

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

+829
08 сент. '11 в 18:02
источник поделиться
38 ответов
  • 1
  • 2

Вам нужно 64-битное трио:

  • 64-разрядная ОС
  • 64-разрядная Java
  • 64-битное Eclipse
+775
12 сент. '11 в 8:29
источник

Связанные вопросы


Похожие вопросы

Рабочие пары ОС, 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).

Мне также не удалось выяснить, как проверить, была ли эта Eclipse 32-разрядной или 64-разрядной версией (я не мог найти ее в диспетчере задач, так как эта установка "Eclipse" не запускалась. И так как прошло некоторое время с тех пор, как я ее установил, я тоже не мог вспомнить ее версию.)

Если вы используете более новую JDK и более старую JRE, у вас могут быть проблемы, но, скорее всего, появится java.lang.UnsupportedClassVersionError, IIRC.

+287
09 янв. '12 в 2:07
источник

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

Используйте OS и Eclipse как 64-разрядные, так и обе 32-разрядные версии, и config eclipse.ini.

Ваш файл eclipse.ini можно найти в папке eclipse.

+242
13 мар. '12 в 13:17
источник

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

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

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

+54
07 окт. '11 в 1:08
источник

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

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

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

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

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

+32
21 июн. '12 в 10:27
источник

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

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

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

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

+28
20 нояб. '14 в 3:16
источник

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

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

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

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

Я обеспечил Sun JDK 7 64-битная версия по умолчанию 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, как предложено Jayesh Kavathiya:

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

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

Примечание:

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

+27
02 окт. '12 в 19:23
источник

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

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

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

Я надеюсь, что это поможет кому-то.

+17
05 мар. '13 в 8:04
источник

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

-vm
yourdrive\java\bin

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

+8
09 мая '12 в 5:45
источник

У меня была аналогичная проблема. Было решено сделать следующее.

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

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

+8
29 нояб. '11 в 8:10
источник

Как уже упоминалось многими людьми, это проблема с 32 по 64 бит для Eclipse и Java. Вы не можете смешивать 32 и 64 бит. Поскольку Eclipse не использует JAVA_HOME, вам, скорее всего, придется изменить свою PATH до запуска Eclipse, чтобы убедиться, что вы используете не только подходящую версию Java, но также и 32 или 64 бит (или модифицируете INI файл как Джаят отметил).

Если вы устанавливаете Eclipse из общего ресурса компании, вы должны убедиться, что можете указать, какую версию Eclipse вы разархивируете, и разархивировать в соответствующий каталог программных файлов, чтобы отслеживать, что это такое, а затем изменить PATH (либо (через Windows) Панель управления → Система или набор PATH=/path/to/32 or 64bit/java/bin;%PATH% (возможно, создайте пакетный файл, если вы не хотите его устанавливать в своей системе и/или переменных пользовательской среды). Помните, что 32-разрядный файл находится в файлах программы (x86).

Если вы не уверены, просто запустите Eclipse, если вы получите ошибку, измените свой PATH на другую "bit" версию Java и повторите попытку. Затем переместите каталог Eclipse в соответствующий каталог Program Files.

+7
28 мар. '12 в 20:02
источник

Ответы выше меня заставили меня искушаться так сильно, что я решил иссушить все возможные комбинации с ОС, Eclipse и JVM трио. В любом случае, кто бы ни копался и не читал мой пост, проверьте следующее как горячую точку (я - пользователь Windows 7).

  • Вы понимаете, что программные файлы и программный файл (x86) - это две разные папки... x86 означает 32-разрядную версию программ, а первая - 64-разрядная версия.

  • Если у вас есть несколько версий Java, установленных с разной версией битов и выпусков, что обязательно произойдет с таким количеством с открытым исходным кодом IDEs, менеджерами, административными консолями, лучшим вариантом является установка аргумента VM непосредственно в файле eclipse.ini. Если вы этого не сделаете, Eclipse сойдет с ума и попытается найти себя, что плохо.

+6
24 янв. '13 в 6:40
источник

В качестве альтернативы, получите ту же "бит" версию JRE и Eclipse, а затем создайте новый ярлык с указанной целью (замените установленную JRE и Eclipse location/path):

"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

Это должно сделать трюк.

+6
19 апр. '12 в 15:57
источник

Вы можете решить эту проблему так же, как и многие другие. Вам нужно, чтобы Eclipse и JDK были 32-битными или оба на 64-битных. Архитектура ОС не имеет значения, в то время как остальные остаются в одном и том же типе архитектуры.

+6
07 июн. '12 в 13:22
источник

Одним из простых способов его устранения является копирование папки jre из установленного JDK в папку установки Eclipse. Убедитесь, что JDK, который вы копируете, имеет ту же архитектуру, что и ваша установка Eclipse.

Мне пришлось настроить свою машину таким образом, потому что я запускаю на своей машине как Eclipse, так и Appcelerator Titanium Studio. Студии требуется 32-разрядная Java, а для Eclipse требуется 64-разрядная версия.

+5
26 апр. '12 в 21:44
источник

Вам нужно удалить все старые [JREs] [1], а затем установить новый... У меня была такая же проблема, и теперь я ее решаю. Я:

Лучше установить Jre 6 32 бит. Это действительно работает.

+5
22 сент. '12 в 0:57
источник

Да, просто убедитесь, что ваши версии Eclipse и JDK являются 64-разрядными. Просто убедитесь, что все правильно удалено JDK и установите его в Program Files, а не в Program Files (x86). По крайней мере, это разрешило мою проблему.

+5
13 мая '12 в 20:15
источник

У меня была такая же проблема после обновления с Java 6 до Java 7. После удаления Java 6 (64-разрядной версии) и переустановки Java 7 (64 бит) работала Eclipse.:)

+4
27 мар. '13 в 16:58
источник

Просто проверьте переменную среды PATH. В "Мой компьютер" → "Свойства" → "Расширенные настройки системы" → "Переменные среды" → (левое верхнее окно "Пользовательские переменные для" имени ПК "), просто проверьте переменную PATH. Если он не существует, создайте его со следующим → C:\Program Files (x86)\Java\jre7\bin < -

Я столкнулся с той же проблемой после обновления моего Eclipse. Я обнаружил, что путь спросил 64-битную версию, но у меня был 32-разрядный путь. Это было полезно для меня. P.S.: У меня 64-разрядная ОС, 32-разрядная JRE и 32-разрядная Eclipse. Все отлично работает:)

+4
20 сент. '12 в 19:36
источник

Загрузила 64-битную JVM с сайта и установила ее вручную и обновила переменную пути системы. Это решило проблему.

  • По умолчанию JVM установлен в моей системе в "C:\Program Files
    (x86)\Java\jre7 "
  • Установленная вручную JVM установлена ​​в "C:\Program Files\Java\jre7" и после обновления этого патча до системы переменная пути, с которой она работала.
+4
28 авг. '12 в 10:26
источник

Спасибо misterfrb, я понял, что Eclipse давал эту ошибку, потому что я только что установил пакет разработчика Oracle 10g, и он искал jvm.dll в папке C:\DevSuiteHome_1 (я должен был установить JDK снова вместе с пакетом разработчика).

После удаления строк DevSuiteHome из переменной paths и добавления местоположения коррекции для 64-битного jvm.dll (не уверен, что это было необходимо, не пытались без него), Eclipse снова работал, а пакет разработчика по-прежнему работает.

+4
03 мар. '12 в 15:51
источник

Простой, у меня 64-разрядная ОС, 32-разрядная Eclipse и установлены как JDK 32, так и 64... Я просто удаленные 64-разрядные JDK и Eclipse работают нормально.

+4
25 янв. '13 в 2:24
источник

Крайне важно добавить параметр -vm и его значение на 2 строки В НАЧАЛЕ eclipse.ini

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

+3
06 нояб. '13 в 16:44
источник

Убедитесь, что вы запускаете Eclipse с правами администратора.

+3
11 нояб. '12 в 1:03
источник

Вы можете установить 32-разрядную версию JDK на 64-битной машине. См. Загрузка JDK 7.

+2
07 авг. '12 в 8:02
источник

У вас есть правильная версия JAVA_HOME и PATH в переменных окружения.

+2
11 сент. '14 в 8:22
источник

Я не уверен, почему, но я установил jre в мою директорию c:\windows и java.exe и javaw.exe внутри моего каталога windows\system32.

Очевидно, что эти каталоги получали приоритет даже после добавления флага -vm в мой файл eclipse.ini.

Удалите их здесь, исправил проблему для меня.

+2
04 апр. '14 в 9:14
источник

То же самое произошло со мной. У меня был 64-битный Eclipse, но мой JDK был 32-битным. Поэтому я установил 64-битную версию, и сейчас все в порядке.

+2
18 сент. '13 в 11:38
источник

И для пользователей PDT - избегать Страница загрузки Zend - у нее нет связанных 64-разрядных загрузок.

Используйте сам сайт Elipse.

У вышеупомянутой ссылки был более старый 3.6 Eclipse, который затем не смог обновить себя из-за Eclipse Bug # 317785.

Мое решение состояло в том, чтобы просто установить 32-разрядную Java вместе с 64-битным - это позволило работать с установщиком Zend.

Это удручает, что количество Java/Eclipse cruft должно пройти через PHP IDE.

+2
21 янв. '13 в 17:11
источник

Если вы используете целую 64-битную трио, и она по-прежнему не работает (я пришел к этой проблеме при запуске Android Monitor в Intellij Idea), вероятно, неправильный jvm.dll используется против того, что ожидает ваша Java. Просто выполните следующие действия:

  • Найдите 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.

+2
27 февр. '13 в 16:38
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос