2

我们的软件有一个用于列出 jdk 安装路径的摆动面板。例如,如果用户的 PC 中安装了 4 个 jdk,并且 jdk 路径在面板中列出:

  1. C:\Java\jdk1.5.0_19\bin\java.exe

  2. D:\software\Java6\jdk1.6.0_31\bin\java.exe

  3. D:\软件\Java6\jdk1.6.0_31_64\bin\java.exe

  4. D:\installedapp\jdk1.7.0_03\bin\java.exe

用户需要选择其中一个 jdk 安装路径来安装我们的软件。我们想知道用户选择的 jdk 的位版本(32 位或 64 位),我们该怎么做呢?

4

3 回答 3

3

好吧,如果您知道位置,您可能会Runtime.exec("pathToJavaInstallPath/bin/java.exe -version")以这种方式使用和捕获版本。这至少是一种蛮力方式。

样本输出:

java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)
于 2012-06-28T02:58:47.290 回答
0

您还可以使用GetBinaryTypeWin32 API 函数来确定给定的 .exe 是 32 位还是 64 位。

有关详细信息,请参阅问题如何检测给定的 PE 文件(exe 或 dll)是 64 位还是 32 位

于 2012-06-29T17:09:11.027 回答
-1

您可以使用“java.version”属性读取正在执行的 Java 版本:

您还可以阅读架构(例如 x86 与 amd64)、操作系统和 JRE 主页。

于 2012-06-28T02:10:29.080 回答