"java -version" 命令在 Inno Setup 中有不同的结果

"java -version" command has different results in Inno Setup

我正在尝试通过 Inno Setup 为我的软件构建安装程序。

但是奇怪的事情发生了:

我尝试 运行 Pascal 代码在 Inno Setup 脚本中获取 Java 版本

Exec('cmd.exe', '/c java  -version 2> ' + tempDirPath+jdkVersionInfoFile, '', 
     SW_HIDE, ewWaitUntilTerminated, ResultCode)

结果是java verison "1.6"

当我在控制台 window 中输入命令 java -version 时,我得到的结果是 java version "1.8"

为什么结果不同?

如果没有更多详细信息,我无法想象这在您的计算机上究竟是如何发生的,但此类差异通常源于 Inno Setup 是 32 位应用程序这一事实。

Inno Setup(32 位应用程序)可能 Java 的 32 位版本是 运行,而 Java 的 64 位版本是 运行通过 Windows 命令解释器(64 位应用程序)。并且您为这些平台安装了不同的版本。

(假设您 运行 64 位版本 Windows)。

请参阅 Inno Setup 文档中的 Install Mode: 32-bit vs. 64-bit 文章。