如何防止java.exe安装在Windows的system32中?

2022-09-02 21:42:45

有没有办法防止Java安装例程(例如jdk-7u1-windows-i586.exe)将java.exe复制到目录中?C:\Windows\system32

我必须在客户端的笔记本电脑上安装我的软件,我不想破坏机器上已经安装的其他Java应用程序。换句话说,我想安装一个只由我的软件使用的私有JRE

到目前为止,我将已安装的 JRE 从计算机复制到客户端计算机。


答案 1

我昨天发现Windows上的Java版本存在问题,因为您知道现在保持Java最新状态至关重要,尤其是位于Windows system32或syswow64文件夹中的Internet Explorer使用的JRE。

您可以在C:驱动器中搜索java,并查看它找到的各种可执行文件,以确定这种情况是否适用于特定系统。

经过一些研究,我发现当Java更新程序运行时,它只更新安装在JAVA home中的文件,通常位于程序文件上,但它不会更新位于Windows系统文件夹中的文件。因此,由于系统文件夹位于默认的系统 PATH 中,Internet Explorer 的使用继续使用旧版本的 JAVA 文件(java.exe、javaw.exe、javaws.exe)

解决方案使用控制面板卸载程序功能卸载java,下载最新版本并重新安装

干杯!费尔南多


答案 2

我最近升级到java 8并发现了这个问题,因为system32下的java版本仍然是java 7。它甚至停止运行版本,因为它抱怨注册表项

U:\>java -version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

这样做会把我引向罪魁祸首:

U:\>where java
C:\Windows\System32\java.exe
C:\Program Files\Java\jdk1.8.0_45\bin\java.exe

我通过删除system32下的java来“解决”这个问题!我不确定这会产生什么后果。


推荐