Java เกิดข้อผิดพลาดในการเปิดคีย์รีจิสทรี


112

ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามทำอะไรกับ 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 แล้วก็ตาม ฉันปล่อยไว้ที่นี่เผื่อว่าจะได้ผลกับคนอื่น
Dave

คำตอบ:


187

ตรวจสอบให้แน่ใจว่าคุณลบใด ๆ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

1
ทำงานให้ฉัน! ขอบคุณ ! ต้องติดตั้ง JRE ใหม่ด้วย
kbonnelly

1
คุณช่วยบอกฉันได้ไหมว่าไฟล์เหล่านี้มีผลอย่างไรในโฟลเดอร์ system32?
Rabia Naz khan

เรียกใช้ "where java" เพื่อดูตำแหน่งของไฟล์ปฏิบัติการที่กล่าวถึงข้างต้น ขุดที่ C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath
Charis Moutafidis

86

คุณจะพบโฟลเดอร์ชื่อ " Oracle " ในโฟลเดอร์ ProgramData ในไดรฟ์ที่ติดตั้ง Windows ของคุณ ลบโฟลเดอร์ หวังว่ามันจะได้ผล ในกรณีของฉันไดรฟ์ติดตั้งของฉันคือ C และเส้นทางของฉันคือC: \ ProgramData \ Oracle


9
หรือลบออกC:\ProgramData\Oracle\Java\javapathจากPathตัวแปรสภาพแวดล้อมWindows
Gediminas Rimsa

@GediminasRimsa ฉันไม่แน่ใจว่าตัวแปรสภาพแวดล้อมพา ธ นี้จะปรากฏในทุกกรณี แต่ขอบคุณสำหรับความคิดเห็น
Shuvankar Paul

ฉันลบเส้นทางออกจากตัวแปรสภาพแวดล้อม แต่ยังคงต้องลบโฟลเดอร์ Oracle ออกจากโฟลเดอร์ ProgramData เพื่อให้ใช้งานได้
Irena Rich

@GediminasRimsa ฉันต้องลบตัวแปรสภาพแวดล้อมจริงๆหลังจากลบ Oracle Folder ใน 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"

คุณจะต้องปรับเปลี่ยนด้านบนเป็นไดเร็กทอรีและเวอร์ชันของคุณเอง

หากยังไม่สามารถช่วยให้ยังคงมี JavaRa http://raproducts.org/wordpress/


น่าเสียดายที่สิ่งนี้ใช้ไม่ได้กับเราใน Windows Server 2016 เรายังคงได้รับ "โมดูลที่ระบุไม่พบ"
Praxiteles

ขออภัยที่ทราบว่า ... ลองใช้วิธีแก้ปัญหาอื่น ๆ ทั้งหมดค้นหาข้อความแสดงข้อผิดพลาด ... และหากคุณพบวิธีแก้ไขโปรดแบ่งปันที่นี่หรือสร้างคำถามใหม่ อย่างไรก็ตาม ... "ไม่พบโมดูลที่ระบุ" ไม่ใช่ข้อความแสดงข้อผิดพลาดที่กล่าวถึงในคำถามเดิม
Tilman Hausherr

6

ตรวจสอบให้แน่ใจว่าคุณได้ลบ java.exe, javaw.exe และ javaws.exe ออกจากระบบของคุณ

  • ถ้าคุณมีระบบ x32 (Win XP 32 bits) โฟลเดอร์ Windows \ System32

  • หากคุณมีระบบ x64 (Win 7 64 บิต) ให้ทำเช่นเดียวกันภายใต้โฟลเดอร์ Windows \ SysWOW64


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 Control Panel- แท็บ Java - View - Path
  3. ตัวแปรสภาพแวดล้อม - เส้นทาง ($ env: Path)

ทั้ง 3 ต้องจัดตำแหน่ง (หากคุณมีหลายรายการให้ลบรายการที่ไม่ถูกต้องออก) - นั่นคือทั้งหมด


4

ใน Windows 10 ฉันเพิ่งติดตั้ง JDK และได้รับข้อผิดพลาดเหล่านี้เมื่อตรวจสอบเวอร์ชัน ผมต้องลบไฟล์ทั้งหมดที่ปฏิบัติการเริ่มต้นด้วยjava(เช่นjava.exe, javaw.exeและjavaws.exe) C:\ProgramData\Oracle\Java\javapathจาก จากนั้นเมื่อลบแล้วให้รันโปรแกรมติดตั้ง JDK อีกครั้งรีสตาร์ทโปรแกรมเทอร์มินัลของฉันและใช้java -vงานได้


ฉันต้องทำสิ่งนี้ แต่ฉันไม่จำเป็นต้องติดตั้งอะไรใหม่ การลบ exes ช่วยแก้ปัญหาได้
Callat

ได้รับการแก้ไขใน windows 8 หลังจากลบไฟล์เหล่านั้น
poovaraj

1

ฉันจะแท็กสิ่งนี้เป็นความคิดเห็น แต่ทำไม่ได้ (ไม่มีตัวแทน) แค่อยากจะขอบคุณ Tilman ฉันพยายามรับ 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 -> ออฟไลน์ <- กำหนดค่า JAVA_HOME และ Path = %JAVA_HOME%/bin;%PATH%


0

ฉันมี Windows 7 ฉันพบปัญหาเดียวกันหลังจากติดตั้ง: PyCharm ฉันไม่พอใจกับ PyCharm ดังนั้นฉันจึงตัดสินใจใช้ Eclipse แทน นี่คือตอนที่ฉันพบว่ามีสิ่งผิดปกติเกิดขึ้นกับ JDK ของฉัน ฉันเคยมี Java.9.x. ดังนั้นฉันจึงตัดสินใจที่จะถอนการติดตั้งและรับเวอร์ชันที่ใหม่กว่า (ตอนที่ฉันเป็น Java.11.x ปัญหาเดิมยังคงมีอยู่ฉันทำตามขั้นตอนส่วนใหญ่ที่กล่าวถึงข้างต้นในโพสต์เช่น: - การลบไฟล์ java * .exe ทั้งหมด - การลบรายการที่เกี่ยวข้องกับ Java ออกจากรีจิสทรี - การล้างโฟลเดอร์ 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 ข. C: \ Windows \ SysWOW64 ค. 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. มีตัวแปรเส้นทางภายใต้ตัวแปรผู้ใช้และตัวแปรระบบ สำหรับส่วนหนึ่งในตัวแปรผู้ใช้ฉันได้เพิ่มสตริง% JDK_HOME% ซึ่งแปลโดยอัตโนมัติไปยังเส้นทางฟิสิคัล สำหรับตัวแปรระบบฉันลบเส้นทาง C: \ ProgramData \ Oracle \ Java \ javapath และเพิ่ม C: \ Program Files \ Java \ jdk-13.0.1 \ bin

ตอนนี้ดีทั้งหมด! ขอบคุณทุกคนที่ตอบคุณร็อค!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.