如何检测 x64 Windows 上是否安装了 32 位 Java,只查看文件系统和注册表?

2022-09-01 15:06:41

我需要确定特定系统是否安装了32位Java。我正在做一个远程查询,它只允许我访问文件系统和注册表,所以我不能尝试运行java.exe或运行任何Java代码。

我还想确保同时检测到 IBM 和 Sun Java,以及任何其他发行版,它们似乎将内容放在文件系统和注册表中的不同位置。

我想到的最好的方法是检查C:\Windows\SysWOW64\java.exe。这是测试是否存在 32 位 Java 的可靠方法,还是某些版本不会将 java.exe放在该文件夹中?

更新:我仍然在寻找一个更有力的答案。为了清楚起见,我无法访问命令提示符。另外,我想检测Java,无论发布者是谁,安装什么版本号,以及用户选择在什么路径上安装它。

C:\Windows\SysWOW64\java.exe似乎符合这些要求,但我希望有更了解的人确认每个Java安装程序确实会把可执行文件放在那里。


答案 1

这似乎提供了Windows上的信息:

1.) 打开窗口命令提示符。

2.) 输入:java -XshowSettings:all 并按 Enter。

3.)命令窗口中将显示大量信息。向上滚动,直到找到字符串:sun.arch.data.model

4.) 如果它显示 sun.arch.data.model = 32,则 VM 为 32 位。如果它显示 sun.arch.data.model = 64,则 VM 为 64 位。


答案 2

您是否有权访问命令提示符?

方法 1: 命令提示符

系统上安装的Java的细节可以通过执行以下命令java -version来确定

方法2:文件夹结构

如果您无权访问命令提示符,请确定Java所在的文件夹。

32 位 :C:\Program Files (x86)\Java\jdk1.6.0_30

64 位 :C:\Program Files\Java\jdk1.6.0_25

但是,在安装过程中,用户可能会更改安装文件夹。

方法 3 : 注册表

您还可以在注册表编辑器中查看安装的版本。

  1. 转到注册表编辑器

  2. 编辑 -> 查找

  3. 搜索 Java。您将获得 Java 的注册表项。

  4. 在名称为 : & 的条目中,将显示已安装的 java 版本DisplayNameDisplayVersion


推荐