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

问题描述 投票:18回答:6

我需要确定特定系统是否安装了32位Java。我正在进行远程查询,只允许我访问文件系统和注册表,因此我无法尝试运行java.exe或运行任何Java代码。

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

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

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

C:\ Windows \ SysWOW64 \ java.exe似乎符合这些要求,但是我希望得到更多知识渊博的人的确认,即每个Java安装程序确实会将该可执行文件放在那里。

64bit 32-bit java
6个回答
37
投票

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

1.)打开Windows命令提示符。

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位。


11
投票

你有权访问命令提示符吗?

方法1:命令提示符

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

方法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. 在名称为:DisplayNameDisplayVersion的条目中,将显示已安装的Java版本

3
投票

检查此键是否为32位和64位Windows机器。

 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

这适用于具有32位JRE的Windows 64位。

 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment

这适用于oracle-sun JRE。


1
投票

如果它不是Oracle的Java,您可能无法分辨。当我安装Oracle Java 64位时,文件进入C:\ Program Files \ Java,但是当我安装32位版本时,它们默认为C:\ Program Files(x86)\ Java。当然,安装Java的人可以覆盖这些默认值。


0
投票

我在Windows上尝试了Oracle和IBM Java的32位和64位安装程序,并且C:\ Windows \ SysWOW64 \ java.exe的存在似乎是确定32位Java可用的可靠方法。我没有测试过这些安装程序的旧版本,但至少看起来它应该是一种可靠的测试方法,适用于最新版本的Java。


-1
投票

只需编写“java -d64 -version”或d32,如果安装了它,它将给出安装了当前版本的响应

© www.soinside.com 2019 - 2024. All rights reserved.