Ошибка при проверке версии Java: не удалось найти java.dll - PullRequest
30 голосов
/ 16 февраля 2012

почему я получаю это? Как я могу это исправить?

C:\Users\ash>java version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.7.0_01', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

Ответы [ 16 ]

38 голосов
/ 27 ноября 2014

Принятое решение для переустановки ВСЕХ JDK было немного суровым.Я тоже столкнулся с этой проблемой, и вот мои 2 цента:

Эта проблема начала возникать с тех пор, как я установил JDK 8 и все еще имел JDK 6.Мне нужны различные проекты, над которыми я работаю.

Я заметил, что у меня есть и пользователь, и система %JAVA_HOME%, поэтому я удалил переменную User %JAVA_HOME% и оставил только системную.

Я также заметил, что в моей установке Oracle были некоторые исполняемые файлы Java, и я полагаю, что те, где они конфликтуют, поскольку мои установки Oracle и Java были в моей переменной %PATH%.

Я удалил все пути Javaиз моей %PATH% переменной и оставил %JAVA_HOME%\bin только в начале переменной, чтобы избежать любых конфликтов с установкой Oracle.

28 голосов
/ 18 августа 2016

У меня была похожая проблема после установки Java 1.8.

Чтобы исправить это, перейдите в настройки системы Advance -> path и удалите

C: \ ProgramData \ Oracle \ Java \ javapath;

12 голосов
/ 16 февраля 2012

Переустановите JDK и установите системную переменную JAVA_HOME на свой JDK. (например, C: \ tools \ jdk7)
И добавьте переменную JAVA_HOME в системную переменную PATH

Введите в командной строке

echo %JAVA_HOME%

и

java -version

Чтобы проверить, была ли ваша установка выполнена успешно.

11 голосов
/ 27 марта 2018

Удаление

C: \ ProgramData \ Oracle \ Java \ javapath;

работает как шарм

3 голосов
/ 30 апреля 2019

Мне пришлось удалить javapath Common Files из «Пути», который конфликтовал, чтобы заставить его работать.Теперь, к счастью, java -version работает просто отлично.

C:\Program Files (x86)\Common Files\Oracle\Java\javapath
2 голосов
/ 10 октября 2018

У меня была похожая проблема после установки Java 10.0

Чтобы исправить это, перейдите в настройки системы Advance -> path и удалите

C: \ ProgramData \ Oracle \ Java \ javapath;

2 голосов
/ 31 мая 2018

Убедитесь, что переменная JDK Path направлена ​​в папку \bin и находится в верхней части списка.

Если есть какая-либо другая запись, в которой есть файл с именем java (например, * 1005)*) он запустит команду для этого файла вместо файла java в вашем JDK.Нет необходимости переустанавливать весь JDK, если ваши файлы по какой-либо причине не повреждены или повреждены.

1 голос
/ 05 июля 2018

Проблема: У нас была такая же проблема на нашем сервере Windows 2012.Мы использовали системную переменную окружения JAVA_HOME, и мы использовали в PATH такие настройки: ...% JAVA_HOME% / bin; ... и никаких других настроек, связанных с java, в PATH не было.у нас был пробел в конце значения переменной JAVA_HOME.Например, «C: \ Program Files \ Java \ Jdk 1.8.0_172», поэтому% JAVA_HOME% / bin означает «C: \ Program Files \ Java \ Jdk 1.8.0_172 \ bin».Поэтому, поскольку значение было разделено по пробелам, и система попыталась найти java.exe в «C: \ Program Files \ Java \ Jdk 1.8.0_172», где его, очевидно, нет. Удалить пробел в конце значения JAVA_HOME!

1 голос
/ 19 августа 2016

Я отредактировал свой путь, чтобы поместить JDK Oracle в начало пути, и это исправило его.

1 голос
/ 09 апреля 2013

Вы можете использовать 32-битную версию Java в 64-битной среде.Экспортируйте форму куста реестра HKLM \ Software \ JavaSoft и импортируйте в HKLM \ Software \ Wow6432Node \ JavaSoft.Для 1.6 мне нужны были только значения JavaHome и RuntimeLib.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft\Java Runtime Environment]
"CurrentVersion"="1.6"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft\Java Runtime Environment\1.6]
"JavaHome"="C:\\Java\\jre"
"RuntimeLib"="C:\\Java\\jre\\bin\\client\\jvm.dll"
...