Ошибка Java при открытии раздела реестра

111

Я получаю эту ошибку, когда пытаюсь сделать что-нибудь с Java в командной строке:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3'
Error: could not find Java.dll
Error: could not find Java 2 Runtime Environment

Несколько дней назад я напортачил с удалением каталогов и реестра Java. Я перезагрузил компьютер, и Java все еще работала нормально, затем я перезапустил его снова сегодня, и теперь я получаю эту ошибку. Я пробовал удалить и переустановить, но, похоже, это не сработало. У меня установлена ​​последняя версия java JRE и путь установлен в переменных среды. Кто-нибудь знает, как это исправить?

gFu
источник
Я попытался удалить Java через командную строку, и это испортило мой деинсталлятор. Поэтому я вручную удалил папку и удалил относящиеся к ней реестры. После этого я перезагрузил и переустановил Java, и она работала нормально до следующей перезагрузки.
gFu
1
Вы пытаетесь переустановить после того, как перезагрузка напутала? Может быть, в третий раз обаяние
Атрис
Да, все еще не работает.
gFu
Вы пробовали создать резервную копию других файлов и переформатировать компьютер? После этого вы, вероятно, сможете выполнить новую установку Java. Но этот метод может оказаться излишним,
Атрейс
1
Каким-то образом я решил это для моей конкретной проблемы, загрузив среду выполнения, хотя у меня уже был установлен JDK. Я оставляю это здесь на случай, если это действительно сработает для кого-то еще.
Дэйв

Ответы:

185

Убедитесь, что вы удалили все java.exe, javaw.exeи javaws.exeиз своей Windows\System32папки, и если у вас система x64 (Win 7 64 бит), сделайте то же самое в разделе Windows\SysWOW64.

Если вы не можете найти их в этих местах, попробуйте удалить их из C:\ProgramData\Oracle\Java\javapath.

Баха
источник
7
После удаления исполняемых файлов "java" из папки system32 мне пришлось переустановить JRE. После этого моя проблема была решена. Спасибо за отправную точку.
dangowans
1
После установки исправления безопасности мне не удалось открыть eclipse из-за этой ошибки. Большое спасибо! Ваше решение сработало. Но мне интересно, в чем здесь настоящая причина.
pvarma 09
1
Сработало у меня! Спасибо ! Также пришлось переустановить JRE.
kbonnelly
1
Подскажите, пожалуйста, на что влияют эти файлы в папке system32?
Rabia Naz
запустите "where java", чтобы увидеть расположение исполняемых файлов, упомянутых выше. Моя где на C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath
Чарис Мутафидис
86

Вы найдете папку с именем « Oracle » в папке ProgramData на диске с установленной Windows. Удалите папку. Надеюсь, это сработает. В моем случае мой установочный диск - C, а мой путь - C: \ ProgramData \ Oracle

Шуванкар Пол
источник
@lese добро пожаловать. Приятно слышать, что это работает на вас.
Пол Шуванкар
9
В качестве альтернативы, удалить C:\ProgramData\Oracle\Java\javapathиз Pathпеременной среды Windows
Гедиминас Римса
@GediminasRimsa, я не уверен, что эта переменная среды пути будет присутствовать в каждом случае. Но спасибо за комментарий.
Пол Шуванкар
Я удалил путь из переменных среды, но все же мне пришлось удалить папку Oracle из папки ProgramData, чтобы заставить ее работать.
Ирена Рич
@GediminasRimsa Мне действительно пришлось удалить переменную среды после удаления папки Oracle в моих ProgramData
Alyosha_Karamazov
21

У меня была похожая проблема. Я установил обновление 1 для JDK7, но не смог его использовать (вероятно, потому, что я нашел JRE6, который я удалил после установки JDK7). Удаление JDK7 было невозможно. Решением было добавить записи реестра JRE вручную.

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
"CurrentVersion"="1.7"

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7.0_01]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"

Вам придется отрегулировать вышеуказанное для ваших собственных каталогов и версии.

Если это не поможет, есть еще JavaRa http://raproducts.org/wordpress/ .

Тилман Хаушерр
источник
К сожалению, это не сработало для нас на Windows Server 2016. Мы продолжаем получать «указанный модуль не может быть найден»
Пракситель
Сожалеем, что ... попробуйте все другие решения, найдите сообщение об ошибке ... и, если вы найдете решение, поделитесь им здесь или создайте новый вопрос. Однако ... "указанный модуль не может быть найден" - это не сообщение об ошибке, которое обсуждалось в исходном вопросе.
Tilman Hausherr
6

Убедитесь, что вы удалили из системы все java.exe, javaw.exe и javaws.exe.

  • если у вас система x32 (32 бита Win XP) папка Windows \ System32

  • если у вас система x64 (Win 7 64 бит), сделайте то же самое в папке Windows \ SysWOW64

user3740684
источник
6

Удалите эти 3 файла, присутствующие на вашем локальном компьютере, по пути C: \ ProgramData \ Oracle \ Java \ javapath

java.exe
javaw.exe
javaws.exe

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

Шикха Сингх
источник
4

Есть 3 места для проверки

  1. Реестр HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ 1.8.0_xxx \ JavaHome
  2. Панель управления Java - вкладка Java - Вид - Путь
  3. Переменные среды - Путь ($ env: Path)

Все три должны быть выровнены (если у вас несколько записей, просто удалите неправильные) - вот и все

Марцин Пясковски
источник
4

В Windows 10 я только что установил JDK и получил эти ошибки при проверке версии. Я должен был удалить все исполняемые файлы , начиная с java(то есть java.exe, javaw.exeа javaws.exe) с C:\ProgramData\Oracle\Java\javapath. А затем, после удаления, повторно запустите установщик JDK, перезапустите мою программу терминала и java -vработает.

joe_the_third
источник
Мне пришлось это сделать, но переустанавливать ничего не пришлось. Удаление EXEs Устранена проблема
Callat
То же самое, удаление этих .exe исправило это для меня.
guymac
Это исправлено в Windows 8 после удаления этих файлов
poovaraj
1

Я бы отметил это как комментарий, но не могу (у меня нет репутации) просто хотел поблагодарить Тилмана. Я безуспешно пытался заставить работать PDFsam (PDF Split and Merge).

При запуске выдает ошибку о том, что не может найти JRE 1.6.0. У меня есть 32-разрядная и 64-разрядная версии, и они отлично просматриваются на веб-сайтах java в своих соответствующих браузерах.

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

Я заглянул в реестр после прочтения этого сообщения, и там не было ключа ... \ SOFTWARE \ JavaSoft \, поэтому я добавил каждый с соответствующими строковыми значениями, указывающими на мою версию x86 (PDFsam - 32-битная программа). Это преодолело первую проблему, но выскочила ошибка о библиотеках amd64, предполагающая, что машина хотела запустить 64-битную версию. Итак, я изменил пути к 64-битной JRE, и PDFsam теперь работает.

К вашему сведению - я попал сюда, выполнив поиск ключей реестра Java после того, как мне не удалось запустить javaw.exe из командной строки (даже после добавления необходимых путей к системному пути), благодаря чему вышеупомянутые изменения также решили эту проблему.

Dizzixx
источник
1

Я получил такую ​​ошибку, когда у меня был JDK 1.7 раньше, и я установил JAVA JDK 1.8 и указал свои переменные JAVA_HOME и PATH на версию JAVA 1.8. Когда я пытаюсь найти версию java, у меня возникает эта ошибка. Я перезапустил свою машину, и она работает. Похоже, мы должны перезагрузить компьютер после изменения переменных среды.

user213013
источник
1

У меня было то же самое:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment

Очистка Windows \ SysWOW64 не помогает для Win7

В моем случае это помогло установить JDK8 в автономном режиме (по ссылке )

я-мир
источник
0

Если запущен антивирусный сканер (например, McAfee), попробуйте:

  1. Отключить антивирусный сканер
  2. Удалите Java (через Панель управления / Программы и компоненты)
  3. Переустановите Java (с Java.com )
  4. Повторно включить антивирусный сканер
зут
источник
0

Удалите Java (через Панель управления / Программы и компоненты)

Установите Java JRE 7 -> OFFLINE <- Настройте JAVA_HOME и Path = %JAVA_HOME%/bin;%PATH%

dap1995
источник
0

У меня Windows 7. После установки возникла та же проблема: PyCharm. PyCharm меня не устроил, поэтому я решил использовать Eclipse. Именно тогда я обнаружил, что с моим JDK что-то пошло не так. Раньше у меня была Java.9.x. Поэтому я решил удалить его и получить более новую версию (в мое время это была Java.11.x. Та же проблема сохранялась. Я выполнил большинство шагов, упомянутых выше в сообщении, например: - Удаление всех файлов java * .exe, - удаление записей, связанных с Java, из реестра - Очистка всех ненужных папок Java. Однако ничего не помогло. У меня все еще было что-то в системе, относящееся к сломанному имени пути Java.

Что действительно принесло исправление, так это следующее: - Удалил все версии JDK, которые у меня были на данный момент. - Переустановил последнюю версию JDK, которая была у меня до возникновения проблемы. - Удалите эту версию надлежащим образом. - Установите последнюю версию SDK. ..

Вот и все .. на этом этапе все вернулось в норму ... За исключением того, что Java.11.xx не исправлял системный путь автоматически, мне пришлось сделать это вручную.

Nowfal
источник
0

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

Проблема:

Javac был на 13 из jdk, но java использовал 1.8 из jre, поэтому java выдавала несовместимую ошибку времени выполнения

Исправить:

  1. В Панели управления -> Программы: я удалил 1.8 (названный Java 8 runtime) и НЕ ПРИКАСАЛСЯ к другому (названному Java (TM) SE Development Kit 13)

  2. Файлы java.exe, javac.exe и javawc.exe удалены из: a. C: \ Windows \ system32 б. C: \ Windows \ SysWOW64 c. C: \ ProgramData \ Oracle \ Java \ javapath

  3. Переменная среды JDK_HOME указывала на 13, но JAVA_HOME указывало на 1.8, поэтому я указал JAVA_HOME также использовать 13, который был C: \ Program Files \ Java \ jdk-13.0.1

  4. Переменная Path была в разделах как пользовательских переменных, так и системных переменных. Для раздела пользовательских переменных я добавил строку% JDK_HOME%, которая автоматически преобразуется в физический путь. Для одного из системных переменных я удалил путь C: \ ProgramData \ Oracle \ Java \ javapath и добавил C: \ Program Files \ Java \ jdk-13.0.1 \ bin

Теперь все хорошо! Спасибо всем, кто ответил, вы молодцы!

Шри Харша
источник