问题
When running "java -version" on command prompt Windows 7, i get this:
Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
I have already checked environment variables:
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_212\bin
And PATH includes "%JAVA_HOME%
I have also tried deleting files :
java.exe, javaw.exe and javaws.exe in ProgramData\Oracle\JAVA\Javapath
However, they won't delete. Even though I am an administrator.
I have also checked C:\Windows\System32 and C:\Windows\SYSWOW64 and didnt find java.exe, javaw.exe or javaws.exe to delete.
What else can I try?
回答1:
- Do you have multiple Java installed?
 - What is there in registry key? Does the version specified in the registry key match with your JDK/JRE folder name? Use 
regeditcommand to open the registry and look for the key you mentioned in your question (HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\CurrentVersion). Cleanup/correct the version if you see a discrepancy. JAVA_HOMEshould be the path excludingbinandPATHshould include bin as%JAVA_HOME%\bin- Are there duplicate entries in 
PATHand also duplication between user and system environment variables? - Can you directly go (cd) to JDK/JRE bin directory where java executable is present and run 
java -version? - Lastly, I hope you looked at 
C:\Windows\System32andC:\Windows\SYSWOW64directories and removed java.exe and related files. 
来源:https://stackoverflow.com/questions/57244959/java-error-opening-registry-key-software-javasoft-java-runtime-environment