Błąd podczas otwierania klucza rejestru Java

110

Otrzymuję ten błąd, gdy próbuję cokolwiek zrobić z Javą w wierszu poleceń:

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

Kilka dni temu spieprzyłem się z usuwaniem katalogów i rejestru Java. Zrestartowałem komputer, a java nadal działała dobrze, a następnie uruchomiłem go ponownie dzisiaj i teraz pojawia się ten błąd. Próbowałem odinstalować i ponownie zainstalować, ale to nie działa. Mam zainstalowane najnowsze środowisko Java JRE i ścieżkę ustawioną w zmiennych środowiskowych. Czy ktoś ma pojęcie, jak to naprawić?

gFu
źródło
Próbowałem odinstalować Javę za pomocą wiersza poleceń i zepsuło to mój deinstalator. Dlatego ręcznie usunąłem folder i usunąłem związane z nim rejestry. Ponownie uruchomiłem i ponownie zainstalowałem Javę i działało dobrze do następnego ponownego uruchomienia.
gFu
1
Próbujesz zainstalować ponownie po ponownym uruchomieniu, zepsuło to? Może trzeci raz jest urok
Atreys
Tak, nadal nie działa.
gFu
Czy próbowałeś wykonać kopię zapasową innych plików i ponownie sformatować komputer? Prawdopodobnie możesz potem przeprowadzić nową instalację Javy. Ale ta metoda może być przesada
Atreys
1
W jakiś sposób rozwiązałem to dla mojego konkretnego problemu, pobierając środowisko uruchomieniowe, mimo że miałem już zainstalowany JDK. Zostawiam to tutaj na wypadek, gdyby to faktycznie działało dla kogoś innego.
Dave

Odpowiedzi:

185

Upewnij się usunąć dowolny java.exe, javaw.exei javaws.exeze swojego Windows\System32katalogu, a jeśli masz system x64 (Win 7 64 bity) również zrobić to samo Under Windows\SysWOW64.

Jeśli nie możesz ich znaleźć w tych lokalizacjach, spróbuj je usunąć z C:\ProgramData\Oracle\Java\javapath.

Baha
źródło
7
Po usunięciu plików wykonywalnych „java” z folderu system32 musiałem ponownie zainstalować środowisko JRE. Potem mój problem został rozwiązany. Dzięki za punkt wyjścia.
dangowans
1
Po zainstalowaniu poprawki bezpieczeństwa nie mogłem otworzyć Eclipse z powodu tego błędu. Wielkie dzięki! Twoje rozwiązanie zadziałało. Ale zastanawiam się, jaki jest prawdziwy powód tutaj.
pvarma
1
Pracował dla mnie! Dziękuję Ci ! Musiałem także ponownie zainstalować środowisko JRE.
kbonnelly
1
Czy możesz mi powiedzieć, jaki jest efekt tych plików w folderze system32?
Rabia Naz khan
uruchom polecenie „where java”, aby zobaczyć lokalizację wspomnianych powyżej plików wykonywalnych. Mój, gdzie na C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath
Charis Moutafidis
85

Znajdziesz folder o nazwie „ Oracle ” w folderze ProgramData na dysku z zainstalowanym systemem Windows. Usuń folder. Mam nadzieję, że to zadziała. W moim przypadku mój dysk instalacyjny to C, a moja ścieżka to C: \ ProgramData \ Oracle

Shuvankar Paul
źródło
@lese nie ma za co. Miło słyszeć, że to działa dla Ciebie.
Shuvankar Paul
9
Alternatywnie, usuń zmienną środowiskową C:\ProgramData\Oracle\Java\javapathWindowsPath
Gediminas Rimsa.
@GediminasRimsa, nie jestem pewien, czy ta zmienna środowiskowa ścieżki będzie występować w każdym przypadku. Ale dzięki za komentarz.
Shuvankar Paul
Usunąłem ścieżkę ze zmiennych środowiskowych, ale nadal musiałem usunąć folder Oracle z folderu ProgramData, aby działał.
Irena Rich
@GediminasRimsa Właściwie musiałem usunąć zmienną środowiskową po usunięciu folderu Oracle w moim ProgramData
Alyosha_Karamazov
21

Miałem podobny problem. Zainstalowałem aktualizację 1 JDK7, ale nie mogłem jej używać (prawdopodobnie dlatego, że znalazłem JRE6, które usunąłem po zainstalowaniu JDK7). Odinstalowanie JDK7 było niemożliwe. Rozwiązaniem było ręczne dodanie wpisów rejestru 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"

Będziesz musiał dostosować powyższe do własnych katalogów i wersji.

Jeśli to nie pomoże, nadal istnieje JavaRa http://raproducts.org/wordpress/ .

Tilman Hausherr
źródło
Niestety, to nie zadziałało w systemie Windows Server 2016. Nadal otrzymujemy komunikat „nie można znaleźć określonego modułu”
Praxiteles
Przykro mi to słyszeć ... wypróbuj wszystkie inne rozwiązania, wyszukaj komunikat o błędzie ... a jeśli znajdziesz rozwiązanie, udostępnij je tutaj lub utwórz nowe pytanie. Jednak ... „Nie można znaleźć określonego modułu” nie jest komunikatem o błędzie omówionym w pierwotnym pytaniu.
Tilman Hausherr
6

Upewnij się, że usunąłeś z systemu wszystkie pliki java.exe, javaw.exe i javaws.exe.

  • jeśli masz system x32 (Windows XP 32 bity) folder Windows \ System32

  • jeśli masz system x64 (Win 7 64 bity), zrób to samo w folderze Windows \ SysWOW64

user3740684
źródło
6

Usuń te 3 pliki obecne w Twojej lokalnej w ścieżce C: \ ProgramData \ Oracle \ Java \ javapath

java.exe
javaw.exe
javaws.exe

To rozwiązało problem dla mnie :)

shikha singh
źródło
4

Do sprawdzenia są 3 lokalizacje

  1. Rejestr HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ 1.8.0_xxx \ JavaHome
  2. Java Control Panel - zakładka Java - Widok - Ścieżka
  3. Zmienne środowiskowe - ścieżka ($ env: Path)

Wszystkie 3 muszą się wyrównać (jeśli masz wiele wpisów, po prostu usuń niewłaściwe) - to wszystko

Marcin Piaskowski
źródło
4

W systemie Windows 10 właśnie zainstalowałem JDK i otrzymałem te błędy podczas sprawdzania wersji. Musiałem usunąć wszystkie pliki wykonywalne zaczynając java(tj java.exe, javaw.exei javaws.exe) od C:\ProgramData\Oracle\Java\javapath. A potem, po usunięciu, ponownie uruchom instalator JDK, zrestartuj mój program terminala i java -vdziała.

joe_the_third
źródło
Musiałem to zrobić, ale nie musiałem niczego ponownie instalować. Usunięcie exe rozwiązało problem
Callat
Tak samo, usunięcie tych plików .exe naprawiło to dla mnie.
guymac
Naprawiono to w systemie Windows 8 po usunięciu tych plików
poovaraj
1

Oznaczałbym to jako komentarz, ale nie mogę (nie mam przedstawiciela) po prostu podziękować Tilmanowi. Próbowałem, aby PDFsam (dzielenie i scalanie PDF) działało bezskutecznie.

Podczas uruchamiania generowałby błąd informujący, że nie może znaleźć środowiska JRE 1.6.0. Mam zarówno wersje 32-bitowe, jak i 64-bitowe, które sprawdzają się dobrze na stronie Java w odpowiednich przeglądarkach.

Wielokrotnie próbowałem odinstalować / ponownie zainstalować i ponownie uruchomić komputer, a także użyć JavaRa. Nie ma szczęścia, nadal nie ma wyjścia.

Po przeczytaniu tego posta zajrzałem do rejestru i nie było klucza ... \ SOFTWARE \ JavaSoft \, więc dodałem każdy z odpowiadającymi im wartościami ciągów wskazującymi na moją wersję x86 (PDFsam to program 32-bitowy). To minęło pierwszy problem, ale pojawił się błąd dotyczący bibliotek amd64, sugerujący, że maszyna chce uruchomić wersję 64-bitową. Więc zmieniłem ścieżki do 64-bitowego JRE i PDFsam teraz działa.

FYI - dotarłem tutaj, szukając kluczy rejestru Java po tym, jak nie mogłem uruchomić javaw.exe z wiersza poleceń (nawet po dodaniu wymaganych ścieżek do ścieżki systemowej), dzięki czemu powyższe zmiany również rozwiązały ten problem.

Dizzixx
źródło
1

Otrzymałem tego rodzaju błąd, gdy wcześniej miałem JDK 1.7 i zainstalowałem JAVA JDK 1.8 i wskazałem zmienne JAVA_HOME i PATH na wersję JAVA 1.8. Kiedy próbuję znaleźć wersję java, pojawia się ten błąd. Ponownie uruchomiłem komputer i działa. Wygląda na to, że po zmodyfikowaniu zmiennych środowiskowych musimy ponownie uruchomić maszynę.

user213013
źródło
1

Miałem to samo:

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

Wyczyszczenie systemu Windows \ SysWOW64 nie pomaga w systemie Win7

W moim przypadku pomogła instalacja JDK8 offline (z linku )

i-mir
źródło
0

Jeśli skaner antywirusowy (taki jak McAfee) jest uruchomiony, spróbuj:

  1. Wyłącz skaner antywirusowy
  2. Odinstaluj Javę (przez Panel sterowania / Programy i funkcje)
  3. Zainstaluj ponownie Javę (z Java.com )
  4. Ponownie włącz skaner antywirusowy
zut
źródło
0

Odinstaluj Javę (przez Panel sterowania / Programy i funkcje)

Zainstaluj Java JRE 7 -> OFFLINE <- Skonfiguruj JAVA_HOME i Path = %JAVA_HOME%/bin;%PATH%

dap1995
źródło
0

Mam Windows 7. Po instalacji mam ten sam problem: PyCharm. Nie byłem zadowolony z PyCharm, więc zdecydowałem się zamiast tego użyć Eclipse. To wtedy odkryłem, że coś poszło nie tak z moim JDK. Kiedyś miałem Java.9.x. Postanowiłem więc go odinstalować i pobrać nowszą wersję (w moim czasie była to Java.11.x. Ten sam problem się utrzymywał. Wykonałem większość kroków opisanych powyżej w poście jak: - Usunięcie wszystkich plików java * .exe, - usuwanie wpisów związanych z Javą z rejestru - Czyszczenie wszystkich niepotrzebnych folderów Java Jednak nic nie pomogło. Wciąż mam coś w systemie, co odnosi się do zepsutej ścieżki Java.

To, co naprawdę przyniosło remedium, to: - Odinstalowano jakąkolwiek wersję JDK, jaką miałem w tej chwili. - Ponownie zainstalowałem ostatnią wersję JDK, którą miałem przed wystąpieniem problemu. - Poprawnie odinstaluj tę wersję. - Zainstaluj jakąkolwiek najnowszą wersję SDK. ..

To wszystko… w tym momencie wszystko wróciło do normy… Poza tym, że Java.11.xx nie naprawiał ścieżki systemowej automatycznie, musiałem to zrobić ręcznie.

Nowfal
źródło
0

Postępowałem zgodnie z wieloma odpowiedziami z góry i mój problem został rozwiązany.

Kwestia:

Javac był na 13 z jdk, ale java używał 1.8 z jre, więc java rzucił niekompatybilny błąd runtime

Naprawić:

  1. W Panelu sterowania -> Programy: odinstalowałem 1.8 (o nazwie Java 8 runtime) i NIE dotknąłem drugiej (o nazwie Java (TM) SE Development Kit 13)

  2. Usunięte pliki java.exe, javac.exe i javawc.exe z: a. C: \ Windows \ system32 b. C: \ Windows \ SysWOW64 c. C: \ ProgramData \ Oracle \ Java \ javapath

  3. Zmienna środowiskowa JDK_HOME wskazywała na 13, ale JAVA_HOME wskazywała na 1.8, więc wskazałem JAVA_HOME także na 13, czyli C: \ Program Files \ Java \ jdk-13.0.1

  4. W sekcjach zmiennych użytkownika i zmiennych systemowych znajdowała się zmienna Path. W sekcji ze zmiennymi użytkownika dodałem ciąg% JDK_HOME% - który został automatycznie przetłumaczony na ścieżkę fizyczną. W przypadku tego pod zmiennymi systemowymi usunąłem ścieżkę C: \ ProgramData \ Oracle \ Java \ javapath i dodałem C: \ Program Files \ Java \ jdk-13.0.1 \ bin

Teraz wszystko w porządku! Dziękuję wszystkim, którzy odpowiedzieli, rządzisz!

Shree Harsha
źródło