如何从 Windows 注册表中删除 JRE 条目?

问题描述 投票:0回答:4

我错误地从 Windows 计算机中删除了 Java 文件夹
现在我在各种插件和所有插件中遇到问题,它要求我下载最新的 JRE。当我尝试执行此操作时,它显示JRE 已存在,您要删除旧的 JRE 并安装新的吗?我说是,然后它给我错误“1723”。

所以简而言之JRE 没有被卸载
我重新安装了 Java SDK,但仍然无法正常工作。 我再次卸载了Java SDK,并尝试卸载JRE......它不起作用。

因此,我认为唯一的方法是从 Windows 注册表中删除 JRE 条目。
我尝试使用JavaRaRevo Uninstaller等软件...但它们没有帮助我。

请让我知道我应该删除哪些 JRE 条目以及它们所在的位置!

java windows
4个回答
14
投票

JDK本身并不使用windows注册表来运行。 JRE 使用系统注册表在某些情况下运行,例如 Applet 或使用 WebStart 技术启动的程序。

最后,JRE 仅当从 Windows 系统目录(例如 .C:/winnt/system32/java.exe)运行时才会使用注册表。如果用户只是在命令行上的某个随机目录中键入“java”,就会发生这种情况,因为系统目录始终位于用户的路径中。在这种情况下,java.exe 将通过查看注册表项来定位当前的 Java 安装

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java 运行时环境\CurrentVersion]

然后从对应的key中获取JRE的路径

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java 运行时环境.5\JavaHome]

请注意,某些软件(例如 Oracle)会在 PATH 定义的开头自行安装,因此首先会找到它们的 Java 安装。 您可以运行java.exe文件的绝对路径,如

“C:\Program Files\Java\jre1.5.0 in\java.exe”MyClass

不会使用注册表,保证使用jre1.5.0。 因此,对于常规 Java SE 程序,指定 JRE 的完整路径来启动它是安全的。

但对于基于Applet/Plugin或WebStart的程序,注册表始终用于确定当前的JRE。


8
投票

我在以下链接中找到了一个非常好的信息源来修复 Java 安装程序问题:

http://forums.whatthetech.com/index.php?showtopic=104537

看来Windows中的以下注册表项必须删除:

reg query hklm\software\classes\installer\products /f "java(tm) 6" /s | find "HKEY_LOCAL_MACHINE" > deljava.txt
for /f "tokens=* delims= " %%a in (deljava.txt) do reg delete %%a /f
del deljava.txt
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment" /f

已检查,它适用于 Windows 7 x64。

问候,


0
投票

我从环境变量和路径中删除了 JAVA_HOME,然后我能够删除该文件夹并重新安装 jdk 和 jre。


0
投票

kppp 需要安装 java

© www.soinside.com 2019 - 2024. All rights reserved.