1

当用户安装了 32 位或 64 位 JRE 时,是否可以通过 Install4J 创建一个可以在两种情况下运行的 Windows 媒体文件?

我有一个案例,我正在包装一个不需要 64 位操作系统功能的应用程序。所以我选择了一个 32bit (Install4J) 的可执行文件来生成。最终,当我们尝试在安装了 64 位 JRE 的 64 位 Win7 上安装时遇到了问题。安装程序抱怨缺少 32 位 JRE。

在 Install4J 的帮助指南中,我发现了以下内容:

在 Windows 上,本机可执行文件可以是 32 位或 64 位可执行文件。如果您的应用程序需要 64 位 JRE,您可以选择为媒体文件生成 64 位安装程序和启动程序。请注意,无法创建同时使用 64 位和 32 位 JRE 的启动器。由于启动器通过加载 JVM DLL 以 JNI 接口启动 JVM,因此架构必须相同。如果您同时针对 32 位和 64 位 JRE 和操作系统,则必须为它们生成不同的媒体文件。

当您确实需要特定的 64 位功能时,我希望粗体字指的是那些情况。

有什么帮助吗?提前致谢。

4

3 回答 3

1

不幸的是,目前这是不可能的。我建议使用 32 位 JRE 包。这适用于 32 位 Windows 和 64 位 Windows。已安装的 64 位 JRE 的情况可能并不那么重要。

于 2012-06-05T20:40:03.803 回答
0

我设法找到了实际上是“黑客”的解决方案。

这个想法是将适当的 32 位 Java 打包为捆绑包,并指示 Install4J 不要使用用户的 Java 并且不要依赖它。作为输出,Install4J 将在安装应用程序本身的同一级别上创建“jre”文件夹。通过这样做,当用户没有在机器上安装 JRE 时,甚至可以同时运行安装程序和应用程序。

我创建此类 Install4J 配置的方式如下:

  • 打开“Media”,然后打开“Windows”(如果您想为 Unix 或 Mac 捆绑 JRE,也可以打开任何其他)
  • 选择“捆绑的 JRE”
  • 选中“捆绑以下 JRE”,然后找到所需的 Java 版本
  • 取消选中“安装为共享 JRE”和“仅在没有找到其他合适的 JRE 时安装”(这会将 JRE 放置在您安装应用程序的文件夹中)
于 2012-06-05T13:42:41.143 回答
0

较新版本的 install4j在媒体文件中有一个32 / 64 位开关。我认为从 install4j 4 开始。

您仍然需要在目标环境中有一个匹配的 JRE,或者在您编写捆绑它时。如果安装程序大小不是问题,捆绑是更安全的方式。

于 2014-07-31T13:19:41.187 回答