Помилка відкриття ключа реєстру


110

Я отримую цю помилку, коли намагаюся зробити що-небудь із 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 та шлях, встановлений у змінних оточення. У когось є підказки, як це виправити?


Я намагався видалити Java через командний рядок, і це зіпсувало мою видалення. Тож я вручну видалив папку та видалив реєстри, що відносяться до неї. Після цього я перезавантажив і перевстановив Java, і вона працювала чудово до моєї наступної перезавантаження.
gFu

1
Ви намагаєтесь перевстановити після перезавантаження його? Можливо, чарівність третього разу
Atreys

Так, у мене все ще не працює.
gFu

Ви намагалися створити резервну копію інших файлів і переформатувати комп'ютер? Напевно, ви могли б зробити свіжу інсталяцію Java після цього. Але цей метод може бути надмірним
Atreys

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
Після встановлення патчу безпеки мені не вдалося відкрити затемнення через цю помилку. Дуже дякую! Ваше рішення спрацювало. Але мені цікаво, в чому справжня причина.
pvarma

1
Працювали для мене! Дякую ! Також довелося перевстановити JRE.
kbonnelly

1
Скажіть, будь ласка, який ефект від цих файлів у папці system32?
Rabia Naz khan

запустіть "де java", щоб побачити розташування виконуваних файлів, згаданих вище. Моє місце на C: \ Program Files (x86) \ Загальні файли \ Oracle \ Java \ javapath
Charis Moutafidis

85

Ви знайдете папку з назвою " Oracle " у папці ProgramData у вашому встановленому Windows накопичувачі. Видаліть папку. Сподіваюся, це спрацює. У моєму випадку мій диск встановлення - C, а мій шлях - C: \ ProgramData \ Oracle


@lese ласкаво просимо. Приємно чути, що це працює для вас.
Shuvankar Paul

9
Крім того, видаліть C:\ProgramData\Oracle\Java\javapathіз Pathзмінної середовища Windows змінну
Gediminas Rimsa

@GediminasRimsa, я не впевнений, що ця змінна середовище шляху буде присутній у кожному випадку. Але дякую за коментар.
Шуванкар Пол

Я видалив шлях із змінних навколишнього середовища, але все-таки довелося видалити папку Oracle із папки ProgramData, щоб змусити її працювати.
Ірена Річ

@GediminasRimsa Я фактично повинен був видалити змінну середовища після видалення папки Oracle у моїй ProgramData
Alyosha_Karamazov

21

У мене була схожа проблема. Я встановив оновлення JDK7 1, але не міг ним користуватися (можливо, тому, що я знайшов 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"

Вам доведеться пристосувати вищезазначене до власних каталогів та версії.

Якщо це не допомагає, все ще є http://raproducts.org/wordpress/ JavaRa .


На жаль, це не спрацювало для нас на Windows Server 2016. Ми продовжуємо отримувати "вказаний модуль не вдалося знайти"
Praxiteles

Вибачте, що це ... спробуйте всі інші рішення, знайдіть повідомлення про помилку ... і якщо ви знайдете рішення, будь ласка, поділіться ним тут або створіть нове запитання. Однак ... "вказаний модуль не вдалося знайти" не повідомлення про помилку, про яке йшлося в оригінальному запитанні.
Тільман Хашерр

6

Переконайтесь, що ви видалили зі своєї системи будь-які java.exe, javaw.exe та javaws.exe.

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

  • якщо у вас є система x64 (Win 7 64 біт), також зробіть те ж саме в папці Windows \ SysWOW64


6

Видаліть ці 3 файли, наявні у вашій місцевості на шляху C: \ ProgramData \ Oracle \ Java \ javapath

java.exe
javaw.exe
javaws.exe

Це вирішило для мене питання :)


4

Є три місця для перевірки

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

Усі 3 повинні вирівнятись (якщо у вас декілька Entires просто видаліть неправильні) - ось і все


4

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


Мені довелося це зробити, але мені нічого не потрібно було перевстановлювати. Видалення
exes вирішило

Дітто, видаляючи ці .exe виправили це для мене.
guymac

Це виправлено у Windows 8 після видалення цих файлів
poovaraj

1

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

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

Спробували видалити / перевстановити та перезавантажити неодноразово, а також використовувати JavaRa. Немає такої удачі, все одно не піти.

Після прочитання цієї публікації я заглянув у реєстр, і там не було ... \ SOFTWARE \ JavaSoft \ key, тому я додав кожне з відповідними рядковими значеннями, що вказують на мою версію x86 (PDFsam - це 32-бітова програма). Ця проблема виникла першою проблемою, але виникла помилка щодо бібліотек amd64, яка передбачає, що машина хотіла запустити 64-бітну версію. Тому я змінив шляхи до 64-бітового JRE і PDFsam зараз працює.

FYI - Я потрапив сюди, шукаючи ключі реєстру Java після того, як мені не вдалося запустити javaw.exe з командного рядка (навіть після додавання необхідних шляхів до системного шляху), завдяки чому зазначені зміни також вирішили це.


1

У мене виникла така помилка, коли раніше у мене був JDK 1.7, і я встановив JAVA JDK 1.8 і вказав свої змінні JAVA_HOME та PATH на версію JAVA 1.8. Коли я намагаюся знайти версію Java, у мене виникла ця помилка. Я перезапустив свою машину, і вона працює. Здається, нам доведеться перезапустити машину після зміни змінних середовища.


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%


0

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

Що дійсно принесло засіб для захисту, це наступне: - Видалено будь-яку версію JDK у мене на даний момент. - Повторно встановив останню версію JDK, яка була в мене до виникнення проблеми - Правильно видаліть цю версію. - Встановіть будь-яку останню версію SDK. ..

Ось .. у цей момент все повернулося до нормального ... За винятком того, що Java.11.xx не виправляв системний шлях автоматично, мені довелося це робити вручну.


0

Я переглянув декілька відповідей згори і вирішив свою проблему.

Проблема:

Javac був на 13 від jdk, але java використовував 1,8 від jre, тому java кинув несумісну помилку виконання

Виправити:

  1. Під Панель керування -> Програми: я видалив 1.8 (з назвою час виконання Java 8) і НЕ торкнувся іншого (з назвою Java (TM) SE Development Kit 13)

  2. Видалено файли java.exe, javac.exe та javawc.exe з: a. C: \ Windows \ system32 b. 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 як в розділах User, так і в розділах системних змінних. Для розділу в розділі змінних користувачів я додав рядок% JDK_HOME% - яка автоматично переводиться на фізичний шлях. Для однієї під системними змінними я видалив шлях C: \ ProgramData \ Oracle \ Java \ javapath і додав C: \ Program Files \ Java \ jdk-13.0.1 \ bin

Все добре зараз! Дякую всім людям, які відповіли, ви рок!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.