it-swarm.com.ru

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

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

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

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

Вот несколько замечаний, которые я хотел бы сделать:

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

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

898
Mxyk

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

  • 64-битная ОС
  • 64-битная Java
  • 64-битное затмение
832
Peter Rader

Рабочие пары ОС, 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-битной версией (я не смог найти ее в Task Manager , так как эта 'установка' Eclipse не будет запуск. И так как прошло много времени с тех пор, как я его настроил, я не мог вспомнить и его версию.)

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

304
sjas

Убедитесь, что ваш файл 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-битные, сохраняйте то же самое и config Eclipse.ini.

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

258
jayesh kavathiya

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

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

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

58
Farm

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

Наиболее надежное решение - указать расположение JVM в Eclipse.ini:

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

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

39
Peter Tseng

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

Создайте ярлык для 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 должны быть одинаковыми.)

33
spannow

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

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

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

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

Я гарантировал, что Sun JDK 7 64-bit была версией по умолчанию Java. Когда я набрал "Java-версию" из командной строки (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)

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

Что СДЕЛАЛ работает:

Добавление опции -vm в Eclipse.ini, как предложено Jayesh Kavathiya:

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

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

Замечания:

Мне не нужно было удалять какие-либо версии JDK или JRE на моем компьютере.

30
Sunny Sarkar

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

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

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

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

18
Stalin Gino

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

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

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

11
misterfrb

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

-vm
yourdrive\Java\bin

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

10
Deepak Tyagi

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

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

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

8
Marc Towersap

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

"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

Это должно делать свое дело.

7
Kevin Yap

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

7
Ignacio

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

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

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

6
sayannayas

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

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

6
Mike Starov

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

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

5
user1600401

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

5
Jeena

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

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

5
Marcin Erbel

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

4
Supun Sameera

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

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

4
Unegma

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

  1. JVM по умолчанию установлен в моей системе был в "C:\Program Files
    (X86)\Java\jre7"
  2. Установленная вручную JVM была установлена ​​в "C:\Program Files\Java\jre7", и после обновления этой записи в переменную системного пути она работала.
4
Satya

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

4
PushkarHJoshi

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

Eclipse запустится с использованием JRE/JDK в подкаталоге jre, если он существует. (STS или другая основанная на Eclipse IDE также поддерживает эту функцию ...)

Решение заключается в создании соединения каталога с помощью команды mklink.exe, которая существует в Windows Vista или более поздней версии ( junction.exe предлагает аналогичную функцию для Windows 2000/XP).
Откройте окна командной строки и выполните следующую команду:

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

Конечно, если Eclipse предназначен для 64-битной Windows, архитектура JDK/JRE должна быть такой же.

Предполагать:

  • Eclipse for windows x86_64 установлен в d:\devTool\Eclipse
  • JDK for windows x64 установлен в C:\Program Files\Java\jdk1.8.0

Команда для создания папки jre будет:

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

Кстати, удаление каталога будет НЕ удалять любой файл. Если вы создали неправильную ссылку, вы можете удалить ее, используя проводник или команду rmdir.

rmdir "d:\devTool\Eclipse\jre"

3
Beck Yang

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

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

3
Rolf

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

3
Here to Help

Вы изменили правильную версию Java_HOME и PATH в переменных среды.

2
Sreedhar GS

На странице загрузки Eclipse должно быть написано "JRE 32 бит" или "JRE 64 бит", а не "Windows 32 бит" или "Windows 64 бит".

Обязательно используйте правильную версию, совместимую с вашим JDE, как уже было сказано ранее.

2
A_rnO

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

2
Rahul Raghuvanshi

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

  1. Найдите файл jvm.dll в каталоге JRE: C:\Program Files\Java\jre7\server\bin\jvm.dll

  2. Найдите файл jvm.dll в каталоге JDK: c:\Program Files\Java\jdk1.7.0_xx\jre\bin\server\

  3. Скопируйте jvm.dll из каталога JRE в свой каталог JDK и перезапишите jvm.dll в JDK.

Не забудьте сделать резервную копию, на всякий случай. Нет необходимости устанавливать или удалять что-либо, связанное с Java.

2
rootpd

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

2
felipe.zkn

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

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

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

2
Guy Lowe

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

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

Приведенная выше ссылка содержала более раннюю версию Eclipse версии 3.6, которая затем не смогла обновить себя из-за Eclipse Bug # 317785 .

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

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

2
cloakedninjas

В моем случае я попытался запустить Java из командной строки и получил эту ошибку

Ошибка: не удалось открыть "C:\Windows\jre\lib\AMD64\jvm.cfg"

Это означало, что в PATH искали "Java", начиная с этого неправильного каталога. Удаление папки C:\Windows\jre\решило проблему

1
Federico Giorgi

Я испытал все ошибки Eclipse, и это одна из них. Проблема в Eclipse 64-битной версии. Скачайте 32-битную версию и запустите ее.

0
sadegh saati

Самое простое решение - включить конкретный JRE в Eclipse.ini:

wiki.Eclipse.org/Eclipse.ini

При этом вы можете запустить практически любую версию Eclipse

0
keesp

У меня такая же проблема. с 64-битным ОС все должно быть 64-битным. Java и ​​Eclipse. Я перепробовал все методы в stackoverflow, а также в YouTube. Ни один из них не работал для меня, пока я не нашел этот простой метод.

Я установил 64-битную Java форму загрузки Cnet, и проблема была автоматически исправлена. Я упомянул источник, потому что слишком легко гуглить и переходить на первый Cnet lint, а не на официальный сайт, если вы новая пчела.

постскриптум если у вас есть пакет [Android ADT и вы пытаетесь открыть Eclipse из него и получаете ту же ошибку, вы также можете исправить эту проблему с помощью этого метода.

0
Priyankara

Эта ошибка возникает из-за разной Java версии загрузки 32-разрядной версии.

0
vaquar khan

Установка JDK 1.8._91 (смешанный режим) является еще одним решением для этого!

0
HaryTD