繁体   English   中英

如何使Windows XP计算机停止尝试使用已卸载的Java JDK(1.6.0_13)

[英]How do I make Windows XP machine stop trying to use uninstalled Java JDK (1.6.0_13)

我在办公室的Windows XP工作站上安装了几个旧版本的Java JDK。 今天,我决定安装最新的Java JDK并卸载较旧的Java JDK。 大错误!

我不明白为什么,但是XP似乎认为删除的JDK安装之一就是它要使用的安装。 不知道它是否相关,但是它是JDK 1.6.0_13。 我以前是使用“控制面板”中的XP“添加或删除程序”将其卸载的。 JDK文件夹不见了(正如人们期望的那样),但显然并没有忘记。 以下是症状:

Eclipse将不再启动并使用我安装的新JDK。 Eclipse的行为就像系统上没有JDK一样。

替代文字

当我在命令提示符下键入java -version ,得到以下响应:
错误:无法打开`C:\\ jdk1.6.0_13 \\ jre \\ lib \\ i386 \\ jvm.cfg'
哎呀,谢谢。我从没想过找不到卸载的JDK ...

替代文字

在机器上搜索时,我发现了一个名为“ Java Quick Starter”的系统服务,该服务指向已删除的JDK目录。

替代文字

现在我知道你们中有些人可能在想什么。 他具有指向旧位置的JAVA_HOME系统变量和/或在PATH系统变量中具有旧位置。 事实并非如此! 没有引用此旧JDK的系统变量,我的PATH也没有。 实际上,我已经为今天早上安装的新JDK定义了一个新的JAVA_HOME并将其添加到系统PATH中。 我确信这至少会给我带来来自命令提示符的成功,但没有运气。

替代文字

而且,如果您想知道在安装/卸载/系统变量更改后是否重新启动,可以。


有人知道我在这里做错了吗? 如何从系统中清除对卸载的JDK的这些引用,以便它可以开始使用新安装的JDK?

编辑1

我按照duffymo的建议检查了注册表。 HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft下有些东西看起来不正确。 我已删除的1.6.0_13 JDK条目仍然存在,并且由于某种原因,许多较新的JDK安装中的条目都将其JavaHome属性设置为旧1.6.0_13 JDK的路径!

替代文字

我卸载了计算机上的所有JDK,但是在此注册表部分中仍然有旧版1.6.0_13 JDK的残迹。

替代文字

另外,“添加和删除程序”列表中仍列出了1.6.0_21 JRE,如果我尝试将其卸载,则会出现错误。 该注册表项也显示在注册表中,并且具有注册表“ JavaHome”键,其值指向不再存在的JDK 1.6.0_13。

替代文字

替代文字

检查注册表,看看周围是否有任何东西指向旧的JRE。

查看HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft。 您将在那里看到Java开发工具包和Java运行时环境。 看看他们怎么说。

既然您发现注册表值不正确,建议您修改它们以指向正确的值,或者删除它们,卸载JDK,然后重新安装。

您也可以尝试禁用启动服务。

摘自我在www.superuser.com上对这个问题的转发:
https://superuser.com/questions/203143/cannot-install-java-jre-on-windows-xp-workstation-possfully-due-to-previous-faile

我在注册表上尝试了CCleaner,但没有解决问题。 那时我感到非常绝望,因此决定使用regedt32在注册表中搜索“ jdk1.6.0”的实例,并删除所有显然是垃圾的东西。 我知道已不存在的所有对JDK / JRE实例的注册表引用都被删除。 通常,这意味着删除整个键,但是有些键只需要删除单个值/数据对。 我在可怜的无防御性注册表上执行完肉丸手术后重新启动。

免责声明:我不建议任何人开始使用注册表中的随机密钥作为解决问题的主要方法! 在考虑重新映像工作站并重新安装一切之前,这是我的最后选择。

话虽如此,这种方法确实解决了我的问题。 我能够安装JRE,然后类似Eclipse之类的东西再次开始正常工作。 接下来,我安装了相同版本的JDK,没有发生任何故障。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM