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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (180)

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

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

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

提问于
用户回答回答于

我最近升级到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解决了这个问题!我不确定这会有什么后果。

用户回答回答于

我昨天发现Windows上的Java版本存在问题,因为您知道最近保留Java是最重要的,特别是位于Windows系统32或syswow64文件夹中的Internet Explorer所使用的JRE。

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

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

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

扫码关注云+社区