如何知道用户在swing面板中选择的JDK位版本

时间:2012-06-28 01:59:07

标签: installer java

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

  1. C:\爪哇\ jdk1.5.0_19 \ BIN \的java.exe

  2. d:\ SOFTWARE \的Java6 \ jdk1.6.0_31 \ BIN \的java.exe

  3. d:\ SOFTWARE \的Java6 \ jdk1.6.0_31_64 \ BIN \的java.exe

  4. d:\ installedapp \ jdk1.7.0_03 \ BIN \的java.exe

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

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

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

有关详细信息,请参阅问题How to detect that a given PE file (exe or dll) is 64 bit or 32 bit

答案 2 :(得分:-1)

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

您还可以阅读架构(例如x86 vs amd64),OS和JRE home。