2012-06-05 64 views
1

是否有可能通过Install4J来为Windows创建一个单一的媒体文件,用户已安装的32位或64位JRE时,可以在两种情况下运行?运行在64位JRE install4j在Win

我在那里我包装有没有需要64位操作系统功能的应用程序的情况下。所以我选择了一个32位(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位功能的情况下。

任何帮助?提前致谢。

+0

看起来你很清楚你需要两个媒体文件。 –

回答

0

我已成功地找到了解决办法,实际上是一种“黑客”。

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

我已经创造了这样Install4J配置的方式是以下几点:

  • 开放“媒体”,然后选择“窗口”(或任何其他,如果你想捆绑JRE用于Unix或Mac)
  • 选择“捆绑的JRE”
  • 检查‘捆绑以下JRE’,然后找到Java版本你想
  • 不选中这两个‘安装为共享JRE’和‘只有在没有其他合适的JRE发现安装’(这将放置JRE中文件夹,你已经安装了应用程序)
+0

根据媒体文件向导中的设置,启动器和安装程序可能是32位或64位。在任何情况下,您的配置只能使用32位JRE。 –

1

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

+0

嗨Ingo任何更新 - 这个功能可用 – rxx

+0

没有任何变化。我们不打算为Windows开发混合型32位/ 64位安装程序。 –

+0

产品启动时是否可以检查JRE版本/体系结构(安装成功并点击可执行文件后) – rxx

0

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

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

相关问题