我们的软件有一个用于列出jdk安装路径的swing面板。例如,如果用户的PC中安装了4个jdk,并且面板中列出了jdk路径:
C:\爪哇\ jdk1.5.0_19 \ BIN \的java.exe
d:\ SOFTWARE \的Java6 \ jdk1.6.0_31 \ BIN \的java.exe
d:\ SOFTWARE \的Java6 \ jdk1.6.0_31_64 \ BIN \的java.exe
d:\ installedapp \ jdk1.7.0_03 \ BIN \的java.exe
用户需要选择一个jdk安装路径来安装我们的软件。我们想知道用户选择的jdk的位版本(32位或64位),我们该怎么做?
答案 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。