是否可以通过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位功能时,粗体指的是那些情况。
有任何帮助吗?提前致谢。
答案 0 :(得分:1)
不幸的是,目前还不可能。我建议使用32位JRE捆绑包。这适用于32位Windows和64位Windows。已安装的64位JRE的情况可能不那么重要。
答案 1 :(得分:0)
我设法找到了实际上是“黑客”的解决方案。
我们的想法是将适当的32位Java打包为bundle,并指示Install4J不要使用用户的Java而不依赖它。作为输出,Install4J将在安装应用程序本身的同一级别创建“jre”文件夹。通过这样做,当用户没有在机器上安装JRE时,甚至可以运行安装程序和应用程序。
我创建此类Install4J配置的方式如下:
答案 2 :(得分:0)
较新版本的install4j在媒体文件中有一个 32/64位开关。我想从install4j 4开始。
您仍然需要在目标环境中或在编写捆绑它时使用匹配的JRE。如果安装程序大小不是问题,捆绑是更安全的方式。