在我的上一篇博文中 ,我演示了在安装早期版本的JDK 9(内部版本68)之后围绕Oracle Java符号链接 (基于Windows的计算机上的C:\ProgramData\Oracle\Java\javapath\
目录)的问题的解决方案。这似乎阻止了早期(更稳定)Java版本的自动安装无法正常工作。 即使将符号链接固定在C:\ProgramData\Oracle\Java\javapath\
目录中,我仍然不是完全“ 脱离困境 ”,但与从JDK 9的早期发行版移回到JDK 8有关。一些注册表问题需要解决,这篇文章总结了这一工作。
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.9', but '1.8' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
通过更改注册表描述的注册表项的值(“ Software \\ Software \ JavaSoft \ Java Runtime Environment” \ CurrentVersion'的值为“ 1.9”,但要求为“ 1.8”。) JavaSoft \ Java Runtime Environment \ CurrentVersion)完全按照推荐的方式(在我的情况下为1.9到1.8)。
下一个屏幕快照显示了在解决问题之前Windows 7便携式计算机的注册表编辑器 (从DOS使用regedit命令启动)。 带圆圈的版本(“ 1.9”)不正确,右键单击“ CurrentVersion”键允许我选择“修改”,然后将值字段从1.9”更改为“ 1.8”(请参阅如何修改Windows注册表以获取有关修改Windows注册表的更多详细信息)。 我对“软件开发工具包”区域中的“ CurrentVersion”所做的操作与对所示“ Java运行时环境”区域所做的操作相同。
注册表编辑器的屏幕快照还显示与警告消息的其他两个方面有关的问题(“错误:找不到java.dll”和“错误:找不到Java SE运行时环境”。)。 如屏幕快照所示,“ Java Runtime Environment”下没有“ 1.8”区域,而“ 1.6”,“ 1.7”和“ 1.9”则存在。 我在“ Java运行时环境”下创建了一个“ 1.8”区域,并根据“ 1.7”键在该区域中创建了键。 结果显示在下一个屏幕快照中。
您可能会注意到,我从注册表中删除了JDK 9条目。 我之所以这样做,是因为我以前只是在试验JDK 9,现在准备将其移回到最新版本的JDK 8,以用于更常见的用途。 另外,我仍然可以访问下载的存档文件,并从中安装了JDK 9,并且可以根据需要再次使用它,但是我想我更有可能下载最新的JDK 9版本 (在撰写本文时,版本70)。 )并在我准备再次尝试使用最新的JDK 9时安装它。
运行“ java -version”提供了一种确定我的Java运行时环境再次正常运行的简便方法。
运行Java时不再有注册表错误! 我还可以告诉您该修复程序已成功应用,因为启动JEdit不再导致出现我先前看到的消息,该消息在此处复制:
错误或丢失的JRE / JDK注册表项也会影响Java IDE和其他基于Java的应用程序,因此最好对它们进行清理。
清理Windows机器上Java注册表问题的最简单方法(就需要对Windows注册表的细节了解很少)也许是按照建议从系统中删除所有Java版本并重新安装。 但是,这似乎有点太过激烈,并且在检查Java版本时在StackOverlow线程中讨论了其他方法:错误:找不到java.dll : 重新安装 , 检查 SYSTEM和USER环境变量中是否存在冲突的环境变量, 直接进行注册表操作 。
翻译自: https://www.javacodegeeks.com/2015/07/windows-registry-cleanup-after-jdk-9-early-release-installation.html