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

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

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

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

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

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

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

30 ответов


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

  • 64-разрядная ОС
  • 64-разрядная Java
  • 64-разрядной затмение

рабочие пары OS, JDK и Eclipse:


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

у меня было установлено несколько JDKs и JREs.

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

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

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

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

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

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

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

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


убедитесь, что ваше затмение.ini файл содержит следующие строки.

-vm
C:\path\tobit\java\bin\javaw.exe

мое затмение.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 затмение.ini.

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


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

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

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


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

наиболее надежным исправлением является указание местоположения JVM в eclipse.ini:

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

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


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

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

"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 должны быть одинаковыми, конечно.)


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

зачем не работы:

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

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

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

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, как предложил Джаеш Каватия:

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

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

Примечание:

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


отсутствует jvm.dll файл, мы можем предоставить путь к файлу dll в как

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

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

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


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

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

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


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

-vm
yourdrive\java\bin

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


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

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

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


кроме того, получите ту же" битную " версию 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

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


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


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

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

  2. Если у вас есть несколько версий Java установлен с различными версиями bitness и release, что обязательно произойдет с таким количеством open source IDEs, менеджеры, административные консоли, лучший вариант-установить аргумент VM непосредственно в . Если вы этого не сделаете, Eclipse сойдет с ума и попытается найти себя, что не хорошо.


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

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


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


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

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


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

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


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

  1. по умолчанию JVM установлен в моей системе был в "C:\Program файлы
    (x86)\Java\jre7"
  2. установленный вручную JVM получил установленный внутри "C:\Program Files\Java\jre7" и после обновления этого паштета в систему переменная path работала.

спасибо misterfrb, я понял, что Eclipse дает эту ошибку, потому что я только что установил Oracle 10G Developer suite, и он искал на C:\DevSuiteHome_1 Папка (я, должно быть, решил снова установить JDK вместе с developer suite).

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


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


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


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


важно добавить параметр-vm и его значение на 2 строки в начале затмения.ini

-vm C:\Program файлы\Java\jdk1.7.0_45\bin\javaw.exe


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

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


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


и PDT пользователи - избежать на Zend страница загрузки - он не имеет каких-либо 64-битных загрузок, связанных.

использовать сам сайт Elipse.

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

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

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


Если вы используете все 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.


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


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

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

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