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

时间:2011-11-22 07:45:29

标签: windows installation jvm java

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

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

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

7 个答案:

答案 0 :(得分:8)

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

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

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

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

干杯! 费尔南多

答案 1 :(得分:6)

我最近升级到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

我解决了#39;这个问题只需删除system32下的java!我不确定这会带来什么后果。

答案 2 :(得分:4)

您只需提供要在软件上使用的JRE,并且:

  • 在运行应用程序之前设置JAVA_HOME变量
  • 指向正确的java.exe文件(例如..\jre1.5.0_22\bin\java <your_java_main>

这可以在* .bat文件中完成,例如。

运行您创建的* .bat文件后,将忽略所有其他Java版本,无论在该PC上安装或将安装哪个版本都无关紧要。

答案 3 :(得分:1)

我发现最新的JDK仍然没有针对注册表编写正确的代码。 问题是如果计算机没有JRE,JDK不会在注册表中正确注册JRE。

对于那些安装JDK 1.7u72只需添加Software \ JavaSoft \ Java Runtime Environment,如错误消息所示。并添加值为1.7的CurrentVersion字符串条目。 然后添加Software \ JavaSoft \ Java Runtime Environment \ 1.7并添加值为“C:\ Program Files \ Java \ jre7”的JavaHome字符串条目。并且JRE将正常运行。 责备Oracle,如果使用Registry,则编写正确的代码,否则不要使用Registry!

答案 4 :(得分:1)

您所要做的就是转到控制面板 - &gt;程序卸载程序。卸载旧的Java更新并保留最新的Java更新和Java开发工具包更新。您最新的Java更新和Java开发工具包更新应具有相同的编号。

答案 5 :(得分:0)

我尝试的一种方法是在System32文件夹中创建一个名为java.exe的只写空文件。

答案 6 :(得分:0)

Windows 10 解决方案

  1. 使用 java -version 在控制台 (CMD) 中检查 Java 版本
  2. 使用 where java 签入控制台 (CMD),其中 Java 路径已被登记。
  • 如果您在其输出中显示“C:\Windows\System32”,您将无法访问您想要的 Java 版本所在的 %JAVA_HOME%。
  • 意思是,您需要删除“C:\Windows\System32”中的“java.exe”。
  1. 只需卸载软件中的 JRE(“程序和功能”) 提示:请记住,不是JDK,在我的例子中是“Java SE Development Kit 8 Update(64 位)”),而是 JRE。