Java错误打开注册表项


110

当我尝试在命令提示符下使用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 2011年

1
您尝试重新启动后将其弄乱了吗?也许第三次是魅力
Atreys 2011年

是的,我有,仍然没有用。
gFu 2011年

您是否尝试过备份其他文件并重新格式化计算机?之后,您可能可以重新安装Java。但是这种方法可能会过大
Atreys 2011年

1
即使我已经安装了JDK,也可以通过下载运行时来解决特定问题的解决方案。我将其留在这里,以防其他人实际使用。
戴夫

Answers:


185

确保删除所有文件java.exejavaw.exe并且javaws.exe从您的Windows\System32文件夹中删除,如果您使用的是x64系统(Win 7 64位),请在下执行相同的操作Windows\SysWOW64

如果在这些位置找不到它们,请尝试从中删除它们C:\ProgramData\Oracle\Java\javapath


7
从system32文件夹中删除“ java”可执行文件后,我必须重新安装JRE。之后,我的问题解决了。感谢您的起点。
dangowans 2013年

1
安装安全修补程序后,由于此错误,我无法打开eclipse。非常感谢!您的解决方案有效。但我想知道真正的原因是什么。
pvarma 2015年

1
为我工作!谢谢 !还必须重新安装JRE。
kbonnelly

1
您能告诉我system32文件夹中这些文件的作用是什么?
拉比亚·纳兹汗

运行“ where java”以查看上述可执行文件的位置。挖掘C:\ Program Files(x86)\ Common Files \ Oracle \ Java \ javapath上的位置
Charis Moutafidis

85

您将在Windows安装的驱动器中的ProgramData文件夹中找到一个名为“ Oracle ”的文件夹。删除文件夹。希望它能工作。在我的情况下,我的安装驱动器是C,路径是C:\ ProgramData \ Oracle


@欢迎您的光临。很高兴听到这对您有用。
Shuvankar Paul

9
或者,C:\ProgramData\Oracle\Java\javapath从Windows Path环境变量中删除
Gediminas Rimsa,

@GediminasRimsa,我不确定此路径环境变量是否在每种情况下都会出现。但感谢您的评论。
Shuvankar Paul

我从环境变量中删除了该路径,但仍必须从ProgramData文件夹中删除Oracle文件夹才能使其正常工作。
艾琳娜·里奇

@GediminasRimsa我实际上在删除ProgramData中的Oracle文件夹后不得不删除环境变量
Alyosha_Karamazov

21

我有一个类似的问题。我已经安装了JDK7更新1,但无法使用它(可能是因为我发现在安装JDK7之后删除了一个JRE6)。卸载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 '18

6

确保从系统中删除所有java.exe,javaw.exe和javaws.exe。

  • 如果您使用的是x32系统(Win XP 32位)Windows \ System32文件夹

  • 如果您使用的是x64系统(Win 7 64位),也可以在Windows \ SysWOW64文件夹下执行相同的操作


6

删除本地文件中位于路径C:\ ProgramData \ Oracle \ Java \ javapath的这3个文件

java.exe
javaw.exe
javaws.exe

这为我解决了问题:)


4

有3个要检查的位置

  1. 注册表HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ 1.8.0_xxx \ JavaHome
  2. Java控制面板-Java选项卡-视图-路径
  3. 环境变量-路径($ env:Path)

所有3个都必须对齐(如果您有多个整体,则删除错误的整体)-仅此而已


4

在Windows 10上,我刚刚安装了JDK,并且在检查版本时遇到了这些错误。我不得不删除所有可执行文件开头java(即java.exejavaw.exejavaws.exe)的C:\ProgramData\Oracle\Java\javapath。然后,将其删除后,重新运行JDK安装程序,重新启动我的终端程序即可java -v正常工作。


我必须这样做,但是不需要重新安装任何东西。删除exe解决了问题
Callat

同上,删除那些.exe为我修复。
guymac

删除这些文件后已在Windows 8中修复
poovaraj

1

我会将其标记为评论,但不能(没有代表)只想感谢Tilman。我试图让PDFsam(PDF拆分和合并)无法正常工作。

在启动时,它将产生一个错误,指出找不到JRE 1.6.0。我有32位和64位版本,它们可以在各自浏览器的java网站上正常检出。

尝试多次卸载/重新安装和重新启动以及使用JavaRa。没有这种运气,仍然没有走。

阅读完这篇文章后,我在注册表中查看了内容,没有... \ SOFTWARE \ JavaSoft \键,因此我添加了每个字符串,并分别带有指向我的x86版本的字符串值(PDFsam是32位程序)。这已经解决了第一个问题,但是关于amd64库的错误弹出提示该机器希望运行64位版本。因此,我将路径更改为64位JRE,PDFsam现在可以使用了。

仅供参考-在无法从命令提示符启动javaw.exe之后(甚至在将必要的路径添加到系统路径之后),我还是通过搜索Java注册表项到达了这里,进行上述更改也解决了这一问题。


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有帮助(来自link


0

如果正在运行病毒扫描程序(例如McAfee),请尝试:

  1. 禁用病毒扫描程序
  2. 卸载Java(通过“控制面板” /“程序和功能”)
  3. 重新安装Java(从Java.com
  4. 重新启用病毒扫描程序

0

卸载Java(通过“控制面板” /“程序和功能”)

安装Java JRE 7->脱机<-配置JAVA_HOME和Path = %JAVA_HOME%/bin;%PATH%


0

我有Windows7。安装后出现相同问题:PyCharm。我对PyCharm不满意,所以我决定改用Eclipse。这是我发现JDK出问题的时候。我曾经有Java.9.x。因此,我决定将其卸载并获取较新的版本(当时我是Java.11.x。同样的问题仍然存在。我按照上面在帖子中提到的大多数步骤进行了以下操作:-删除所有java * .exe文件, -从注册表中删除了与Java相关的条目-清理了所有不必要的Java文件夹,但是没有任何帮助,我在系统中仍然有一些东西指向损坏的Java路径名。

真正带来补救的措施如下:-卸载了我目前拥有的JDK版本。-重新安装问题发生之前的上一个JDK版本-正确卸载该版本。-安装任何最新版本的SDK。..

就是这样..至此一切恢复正常...除了Java.11.xx不能自动​​修复系统路径之外,我必须手动进行操作。


0

我从上面回答了多个问题,并解决了我的问题。

问题:

Javac在jdk中为13,但Java在jre中使用1.8,因此Java抛出了不兼容的运行时错误

固定:

  1. 在“控制面板”->“程序”下:我卸载了1.8(名为Java 8运行时),但未触摸其他程序(名为Java(TM)SE Development Kit 13)

  2. 从以下位置删除了java.exe,javac.exe和javawc.exe文件:C:\ Windows \ system32 b。C:\ Windows \ SysWOW64 c。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. 用户变量和系统变量部分下都有一个Path变量。对于用户变量部分,我添加了字符串%JDK_HOME%-它会自动转换为物理路径。对于系统变量下的一个,我删除了路径C:\ ProgramData \ Oracle \ Java \ javapath并添加了C:\ Program Files \ Java \ jdk-13.0.1 \ bin

一切都好!感谢所有回答的人,您真棒!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.