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

标签 java windows

我错误地从我的 Windows 机器上删除了 Java 文件夹
现在我在各种插件和所有插件中遇到问题,它要求我下载最新的 JRE。当我尝试这样做时,它说 JRE 已经存在,你想删除旧的 JRE 并安装新的吗?我说是,然后它给我错误“1723”。

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

所以,我认为唯一的方法是从 Windows 注册表中删除 JRE 条目。
我尝试使用像 JavaRa 这样的软件, Revo Uninstaller等等...但他们没有帮助我。

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

最佳答案

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

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

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion]

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

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5\JavaHome]

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

"C:\Program Files\Java\jre1.5.0\bin\java.exe" MyClass

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

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

关于java - 如何从 Windows 注册表中删除 JRE 条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5415485/

相关文章:

windows - 有没有办法将应用程序外观设置为与 Windows 外观不同?

java - 从 ListView 中单击歌曲后,新 Activity 正在打开,但歌曲未播放

java - 使用 Java 将多个数据插入 Oracle 数据库

r - Windows 不支持“mc.cores”> 1

windows - Sbt 检索所需库时出错

c - 修改命令行参数,使它们在 ps 输出中不可见

java - Spring security - 具有多个身份验证提供者的记住我身份验证

java - 什么是 NullPointerException,我该如何解决?

java - 使用通用类型

Python 可移植、Linux 和 Windows