Kesalahan Java membuka kunci registri

110

Saya mendapatkan kesalahan ini ketika saya mencoba melakukan apa pun dengan Java di command prompt:

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

Saya mengacau dengan menghapus direktori dan registri Java beberapa hari yang lalu. Saya me-restart komputer dan java masih berfungsi dengan baik, kemudian saya restart lagi hari ini dan sekarang saya mendapatkan kesalahan ini. Saya telah mencoba mencopot pemasangan dan memasang ulang tetapi tampaknya tidak berhasil. Saya memiliki java JRE terbaru yang diinstal dan jalur yang ditetapkan di variabel lingkungan. Ada yang punya petunjuk bagaimana cara memperbaikinya?

gFu
sumber
Saya mencoba untuk menghapus java melalui command prompt dan itu mengacaukan uninstaller saya. Jadi saya secara manual menghapus folder dan menghapus registri yang berkaitan dengannya. Saya mem-boot ulang dan menginstal ulang Java setelah itu dan berfungsi dengan baik sampai reboot berikutnya.
gFu
1
Anda mencoba menginstal ulang setelah reboot mengacaukannya? Mungkin ketiga kalinya pesona
Atreys
Ya saya punya, masih tidak berhasil.
gFu
Sudahkah Anda mencoba mencadangkan file Anda yang lain dan memformat ulang komputer Anda? Anda mungkin bisa melakukan instalasi Java baru setelah itu. Tetapi metode ini mungkin berlebihan
Atreys
1
Entah bagaimana saya menyelesaikannya untuk masalah khusus saya dengan mengunduh runtime meskipun saya sudah menginstal JDK. Saya tinggalkan ini di sini kalau-kalau itu benar-benar berfungsi untuk orang lain.
Dave

Jawaban:

185

Pastikan Anda menghapus apa pun java.exe, javaw.exedan javaws.exedari Windows\System32folder Anda dan jika Anda memiliki sistem x64 (Win 7 64 bit) juga lakukan hal yang sama di bawah Windows\SysWOW64.

Jika Anda tidak dapat menemukannya di lokasi ini, coba hapus dari C:\ProgramData\Oracle\Java\javapath.

Baha
sumber
7
Setelah menghapus file executable "java" dari folder system32 saya, saya harus menginstal ulang JRE. Setelah itu, masalah saya terselesaikan. Terima kasih untuk titik awalnya.
dangowans
1
Setelah instalasi patch keamanan, saya tidak dapat membuka eclipse karena kesalahan ini. Terima kasih banyak! Solusi Anda berhasil. Tapi saya bertanya-tanya apa alasan sebenarnya di sini.
pvarma
1
Bekerja untuk saya! Terima kasih ! Juga harus menginstal ulang JRE.
kbonnelly
1
Bisakah Anda memberi tahu saya apa efek dari file-file ini di folder system32?
Rabia Naz khan
jalankan "di mana java" untuk melihat lokasi file yang dapat dieksekusi yang disebutkan di atas. Tambang di mana di C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath
Charis Moutafidis
85

Anda akan menemukan folder bernama " Oracle " pada folder ProgramData di drive yang diinstal windows Anda. Hapus folder tersebut. Semoga berhasil. Dalam kasus saya, drive instal saya adalah C dan jalur saya adalah C: \ ProgramData \ Oracle

Shuvankar Paul
sumber
@ Selamat datang. Senang mendengar ini berhasil untuk Anda.
Shuvankar Paul
9
Atau, hapus C:\ProgramData\Oracle\Java\javapathdari Pathvariabel lingkungan Windows
Gediminas Rimsa
@GediminasRimsa, saya tidak yakin variabel lingkungan jalur ini akan hadir dalam setiap kasus. Tapi terima kasih atas komentarnya.
Shuvankar Paul
Saya menghapus jalur dari variabel lingkungan tetapi masih harus menghapus folder Oracle dari folder ProgramData untuk membuatnya berfungsi.
Irena Rich
@GediminasRimsa Saya sebenarnya Harus menghapus Variabel lingkungan setelah menghapus Folder Oracle di ProgramData saya
AlyoshaKaramazov
21

Saya memiliki masalah serupa. Saya telah menginstal pembaruan JDK7 1 tetapi tidak dapat menggunakannya (mungkin karena saya menemukan JRE6 yang saya hapus setelah menginstal JDK7). Menghapus instalasi JDK7 tidak mungkin dilakukan. Solusinya adalah menambahkan entri registri JRE secara manual.

[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"

Anda harus menyesuaikan di atas ke direktori dan versi Anda sendiri.

Jika ini tidak membantu, masih ada JavaRa http://raproducts.org/wordpress/ .

Tilman Hausherr
sumber
Sayangnya, ini tidak berhasil untuk kami di Windows Server 2016. Kami terus mendapatkan "modul yang ditentukan tidak dapat ditemukan"
Praxiteles
Mohon maaf atas ... coba semua solusi lain, cari pesan kesalahan ... dan jika Anda akan menemukan solusi, bagikan di sini, atau buat pertanyaan baru. Namun ... "modul yang ditentukan tidak dapat ditemukan" bukanlah pesan kesalahan yang dibahas dalam pertanyaan awal.
Tilman Hausherr
6

Pastikan Anda menghapus java.exe, javaw.exe, dan javaws.exe dari sistem Anda.

  • jika Anda memiliki folder Windows \ System32 sistem x32 (Win XP 32 bit)

  • jika Anda memiliki sistem x64 (Win 7 64 bit) juga lakukan hal yang sama di bawah folder Windows \ SysWOW64

pengguna3740684
sumber
6

Hapus 3 file ini yang ada di lokal Anda di jalur C: \ ProgramData \ Oracle \ Java \ javapath

java.exe
javaw.exe
javaws.exe

Ini memecahkan masalah untuk saya :)

shikha singh
sumber
4

Ada 3 lokasi untuk diperiksa

  1. Registri HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ 1.8.0_xxx \ JavaHome
  2. Panel Kontrol Java- Tab Java - Tampilan - Jalur
  3. Variabel Lingkungan - Jalur ($ env: Path)

Semua 3 harus menyelaraskan (jika Anda memiliki banyak entri, hapus saja yang salah) - itu saja

Marcin Piaskowski
sumber
4

Pada Windows 10 saya baru saja menginstal JDK, dan mendapatkan kesalahan ini saat memeriksa versinya. Saya harus menghapus semua file yang dapat dieksekusi dimulai dengan java(yaitu java.exe, javaw.exedan javaws.exe) dari C:\ProgramData\Oracle\Java\javapath. Dan kemudian, setelah dihapus, jalankan kembali penginstal JDK, mulai ulang program terminal saya dan java -vberfungsi.

joe_the_third
sumber
Saya harus melakukan ini tetapi saya tidak perlu menginstal ulang apa pun. Menghapus exes memperbaiki masalah
Callat
Ditto, menghapus .exe itu telah memperbaikinya untukku.
guymac
Ini diperbaiki di windows 8 setelah menghapus file-file itu
poovaraj
1

Saya akan menandai ini sebagai komentar tetapi tidak bisa (tidak memiliki perwakilan) hanya ingin berterima kasih kepada Tilman. Saya mencoba membuat PDFsam (PDF Split and Merge) tidak berhasil.

Saat peluncuran, akan menghasilkan kesalahan yang menyatakan bahwa ia tidak dapat menemukan JRE 1.6.0. Saya Memiliki versi 32 dan 64 bit dan mereka memeriksa dengan baik di situs web java di browser masing-masing.

Mencoba menghapus / menginstal ulang dan me-reboot berulang kali serta menggunakan JavaRa. Tidak beruntung, tetap tidak bisa pergi.

Saya mencari di registri setelah membaca posting ini dan tidak ada ... \ SOFTWARE \ JavaSoft \ key jadi saya menambahkan masing-masing dengan nilai string masing-masing yang menunjuk ke versi x86 saya (PDFsam adalah program 32bit). Ini berhasil melewati masalah pertama tetapi kesalahan muncul tentang pustaka amd64 yang menunjukkan mesin ingin menjalankan versi 64bit. Jadi saya mengubah jalur ke 64bit JRE dan PDFsam sekarang berfungsi.

FYI - Saya sampai di sini dengan mencari kunci registri Java setelah saya tidak dapat meluncurkan javaw.exe dari command prompt (bahkan setelah menambahkan jalur yang diperlukan ke jalur sistem), membuat perubahan yang disebutkan di atas memecahkan masalah ini juga.

Dizzixx
sumber
1

Saya mendapat kesalahan seperti ini ketika saya memiliki JDK 1.7 sebelumnya dan saya menginstal JAVA JDK 1.8 dan mengarahkan variabel JAVA_HOME dan PATH saya ke versi JAVA 1.8. Ketika saya mencoba menemukan versi java saya mendapat kesalahan ini. Saya me-restart mesin saya, dan berhasil. Sepertinya kita harus me-restart mesin setelah memodifikasi variabel lingkungan.

pengguna213013
sumber
1

Saya memiliki hal yang sama:

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

Menghapus Windows \ SysWOW64 tidak membantu untuk Win7

Dalam kasus saya, menginstal JDK8 offline membantu (dari tautan )

i-mir
sumber
0

Jika pemindai virus (seperti McAfee) sedang berjalan, coba:

  1. Nonaktifkan pemindai virus
  2. Uninstall Java (melalui Control Panel / Program dan Fitur)
  3. Instal ulang Java (dari Java.com )
  4. Aktifkan kembali pemindai virus
zut
sumber
0

Uninstall Java (melalui Control Panel / Program dan Fitur)

Instal Java JRE 7 -> OFFLINE <- Konfigurasi JAVA_HOME dan Path = %JAVA_HOME%/bin;%PATH%

dap1995
sumber
0

Saya memiliki Windows 7. Saya mendapat masalah yang sama setelah menginstal: PyCharm. Saya tidak puas dengan PyCharm, jadi saya memutuskan untuk menggunakan Eclipse. Saat itulah saya menemukan bahwa ada yang salah dengan JDK saya. Saya dulu memiliki Java.9.x. Jadi saya memutuskan untuk menghapusnya dan mendapatkan versi yang lebih baru (pada saat saya itu Java.11.x. Masalah yang sama tetap ada. Saya mengikuti sebagian besar langkah yang disebutkan di atas dalam posting seperti: - Menghapus semua file java * .exe, - menghapus entri terkait Java dari registri - Membersihkan semua folder Java yang tidak perlu. Namun tidak ada yang membantu. Saya masih memiliki sesuatu di sistem yang merujuk ke nama jalur Java yang rusak.

Apa yang benar-benar membawa perbaikan adalah sebagai berikut: - Menghapus versi JDK apa pun yang saya miliki saat ini. - Menginstal ulang versi JDK terakhir yang saya miliki sebelum masalah terjadi - Hapus instalan versi itu dengan benar. - Instal SDK versi terbaru apa pun. ..

Itu saja .. pada titik ini semuanya kembali normal ... Kecuali bahwa Java.11.xx tidak memperbaiki jalur sistem secara otomatis, saya harus melakukannya secara manual.

Nowfal
sumber
0

Saya mengikuti beberapa jawaban dari atas dan menyelesaikan masalah saya.

Isu:

Javac menggunakan 13 dari jdk tetapi java menggunakan 1.8 dari jre sehingga java membuat error runtime tidak kompatibel

Memperbaiki:

  1. Di bawah Panel Kontrol -> Program: Saya menghapus instalan 1.8 (bernama runtime Java 8) dan TIDAK menyentuh yang lain (bernama Java (TM) SE Development Kit 13)

  2. Menghapus file java.exe, javac.exe, dan javawc.exe dari: a. C: \ Windows \ system32 b. C: \ Windows \ SysWOW64 c. C: \ ProgramData \ Oracle \ Java \ javapath

  3. Variabel lingkungan JDK_HOME menunjuk ke 13 tetapi JAVA_HOME menunjuk ke 1,8 jadi saya menunjuk JAVA_HOME untuk juga menggunakan 13 yaitu C: \ Program Files \ Java \ jdk-13.0.1

  4. Ada variabel Jalur di bawah bagian Variabel pengguna dan variabel sistem. Untuk yang ada di bagian variabel pengguna, saya menambahkan string% JDK_HOME% - yang diterjemahkan secara otomatis ke jalur fisik. Untuk variabel sistem di bawah, saya menghapus jalur C: \ ProgramData \ Oracle \ Java \ javapath dan menambahkan C: \ Program Files \ Java \ jdk-13.0.1 \ bin

Semua baik-baik saja sekarang! Terima kasih untuk semua orang yang menjawab, Anda keren!

Shree Harsha
sumber