在Win中运行64位JRE上的install4j

时间:2012-06-05 10:54:49

标签: install4j

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

我有一个案例,我正在包装一个不需要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位功能时,粗体指的是那些情况。

有任何帮助吗?提前致谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

  • 打开“媒体”,然后打开“Windows”(或任何其他,如果你想为Unix或Mac捆绑JRE)
  • 选择“Bundled JRE”
  • 选中“捆绑以下JRE”,然后找到所需的Java版本
  • 不选中“安装为共享JRE”和“仅在未找到其他合适的JRE时安装”(这会将JRE放在已安装应用程序的文件夹中)

答案 2 :(得分:0)

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

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