`
yyjlinux
  • 浏览: 370056 次
  • 来自: ...
社区版块
存档分类
最新评论

如何清除注册表中的Java安装信息?

    博客分类:
  • Java
阅读更多

在Windows中,如果本地安装过Java,但存在问题无法使用,需要重新安装同版本的Java时,会提示如下信息:

 

This software has already been installed on your computer. Would you like to reinstall it?

确认后没有响应,或直接报错:

 

This action is only valid for products that are currently installed.

因而,无法重新安装,也无法卸载Java。

 

造成这种情况的原因是,原有Java安装目录已经被删除\或损坏了,但注册表中的Java安装信息还存在,这样重装时Java安装程序就会认为已经安装过了。

 

因而,需要先清除注册表中的Java安装信息,再执行Java安装程序。消除注册表时一定要将关键的Java信息清除干净,如果有残留的键值,则还是无法重装Java。

 

清除Java注册表时,主要参考了这篇文章:"Java Setup Problem, This action is only valid for products that are currently installed"。

 

其中提供了JavaMSIFix.exe和fixjava.bat两个修复java的小程序,文章中建议使用JavaMSIFix.exe,说fixjava.bat可能在WinXP有些情况下不好使(有同事的XP环境fixjava.bat直接报语法错误)。我试了下,JavaMSIFix.exe修复Java7时不好使,可能是写程序时Java7还没发布呢,所以没支持,其他Java版本没试过。fixjava.bat这个小程序在Win7下很好使,使用时可以根据自己的情况做些调整,脚本内容如下:

 

reg query hklm\software\classes\installer\products /f "java" /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

这个fixjava.bat批处理脚本,就是删除注册表中关键的Java产品信息。我将原脚本中第一行的搜索关键字由java(tm) 6改为java,以更支持删除任意版本的Java注册表。如果Java版本很明确,也可以指定搜索及删除的具体版本,如:

  • java(tm) 5
  • java(tm) 6
  • java 7
建议使用fixjava.bat脚本来消除,一个是有脚本代码,很清楚脚本里做了哪些事情。另一个,也可根据个人的需要来修改脚本,比较灵活。

综上,重新安装Java环境的步骤为:
  1. 创建fixjava.bat脚本,检查代码内容是否满足要求,并编辑保存
  2. 双击执行fixjava.bat脚本,清除注册表中的Java安装信息
  3. 重新执行Java安装程序
  4. Ok,完成
附注:如果上述脚本在WinXP中执行报错,则可以通过手工方式删除注册表中的Java信息,如下:
  1. 将HKEY_LOCAL_MACHINE\software\classes\installer\products下的ProductName项含有"Java"字样的所在分支全部删除,见下图。
  2. 删除HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment分支
  3. 重新执行Java安装程序
  4. Ok,完成
分享到:
评论

相关推荐

    如何清除注册表中的Java安装信息

    ### 如何清除注册表中的Java安装信息 在日常的计算机维护工作中,我们经常会遇到软件安装失败的情况,尤其是在尝试重新安装相同版本的Java时。当Windows系统检测到注册表中有Java的相关记录时,即使该Java安装已被...

    java注册表修改

    在IT领域,尤其是在Java开发中,对注册表的修改是一项重要的技能,特别是在处理与操作系统集成的应用程序时。本文将深入探讨“java注册表修改”的核心概念、代码示例及其应用场景,帮助开发者更好地理解和掌握这一...

    loadrunner注册表清理工具

    3. **软件安装与注册表**:安装软件时,系统会在注册表中创建相应的键值以记录软件信息;卸载时,若没有完全清除这些键值,可能导致新版本的安装失败。 4. **注册表清理工具**:这类工具用于查找并删除注册表中的...

    注册表学习系统V1.0简体中文免费版认识注册表与注册表编辑器等

    4. 软件卸载:很多软件的卸载信息存储在注册表中,卸载程序时未能清除相关条目可能导致残留问题。 5. 性能优化:谨慎地调整某些注册表设置可能有助于提升系统性能,但这也可能导致问题,因此需要谨慎操作。 ...

    关于Java卸载时出现 内部错误 2753 RegUtils 的解决办法

    当程序安装时,它会在注册表中创建条目,而卸载时应清除这些条目。然而,如果卸载过程出现问题,部分条目可能未被正确删除,从而引发错误。 错误“内部错误 2753 RegUtils”涉及到RegUtils这个组件,这通常是一个与...

    Java卸载工具

    1. **注册表清理**:Java在安装时会向系统注册表写入大量信息,用于管理Java版本和配置。然而,当通过常规方式卸载Java时,这些注册表项可能不会被完全删除,导致后续安装新版本时出现问题。Java卸载工具可以扫描并...

    jre180 STM32cubeMX 6.0.1版本需要的Java环境

    这通常涉及到卸载已安装的Java,包括JDK(Java Development Kit,包含JRE和开发工具),并清除注册表中的相关键值,以避免任何潜在的干扰。注册表是Windows操作系统用来存储系统和应用程序设置的重要数据库,清理与...

    很轻松的防止纂改注册表

    注册表(Registry)是微软Windows操作系统中用于存储系统配置信息的核心数据库。它包含了系统硬件、软件配置以及用户设置等关键数据。注册表对于系统的正常运行至关重要,任何错误的修改都可能导致系统功能异常甚至...

    很经典很强大的注册表学习器

    8. **软件卸载**:有些软件在卸载后未完全清除其在注册表中的痕迹,可能导致新的安装冲突或遗留问题,使用注册表清理工具可以帮助解决。 9. **注册表权限**:在多用户环境下,每个用户对注册表的访问权限不同,管理...

    Java+Web开发环境搭建

    此时需要彻底删除相关的文件夹,并清除注册表中残留的信息。 - 重新开始安装过程。 - **注意事项**: - 安装企业版时需注意操作系统的版本,一般需要服务器版的操作系统。 - 配置数据库服务器时,合理规划数据库...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java调用windows api

    2. **Java Native Access (JNA)**: JNA是一种更高级的接口,它消除了对JNI的直接使用,允许Java代码直接映射到本地函数。JNA提供了更简单的API,无需编写C/C++代码,而是通过Java接口来声明本地函数。 - **JNA配置...

    java卸载工具 jdk卸载工具 官方卸载工具 干净

    它们能够帮助用户彻底、干净地卸载JDK,包括注册表中的相关条目、系统路径中的引用以及安装目录下的文件,避免了手动清理时可能遗漏的部分。 "JavaUninstallTool.exe"是这个官方卸载工具的可执行文件名,它是一个...

    浏览器无法运行JAVA的修复脚本.rar

    在这个场景中,这个批处理脚本可能包含了清理缓存、更新Java版本、调整浏览器设置或者修复系统注册表项等步骤,以解决IE中运行Java时遇到的问题。 关于Java脚本错误的修复,我们可以从以下几个方面进行: 1. **...

    Java基础知识

    - **安装版**:通过安装程序完成安装,安装过程中会验证注册表信息,确保一台电脑仅安装一个安装版JDK。安装步骤包括: - 双击安装程序启动安装向导。 - 自动检查并准备安装环境。 - 选择安装组件,默认情况下会...

    KEmulator java模拟器

    KEmulator的绿色版意味着它无需安装,只需解压即可使用,不写入系统注册表,不占用过多系统资源,且易于备份和移动。这种便携式的设计对用户来说非常方便,尤其适合那些经常需要在不同计算机上运行Java应用的用户。 ...

    win10 jdk1.7和1.8共存配置

    安装过程中,默认情况下会创建一个标准的安装路径(如:`C:\Program Files\Java\jdk1.7.0_xx`),建议不要更改此路径,以便于后续配置。 #### 3. 配置环境变量 - 打开“控制面板”>“系统和安全”>“系统”>“高级...

    QTP安装说明及下载

    - 如果在安装过程中遇到与其他应用程序(如Java、.NET、Oracle等)的兼容性问题,可以尝试卸载这些应用后再重新安装QTP。 - 使用注册表清理工具(如RegCleaner)来清除残留的注册表项。 2. **特定环境下的注意...

    A扫描电脑上的安装程序

    对于Windows系统,这可能涉及到遍历注册表中的`Software\Microsoft\Windows\CurrentVersion\Uninstall`子键,因为许多程序在安装时会在该位置留下相关信息。对于其他如Linux或Mac OS,可能需要查询`/usr/local`, `/...

    彻底删除JDK

    4. **注册表清理困难**:用户尝试手动清理注册表中与 JAVA 相关的信息,但仍然无法解决问题。 #### 三、解决方案 针对以上问题,可以通过以下步骤进行彻底删除 JDK 的操作: 1. **卸载程序**:首先通过“添加/...

Global site tag (gtag.js) - Google Analytics