如何在MSI中捆绑Java依赖应用程序和JRE

5
这与如何为Java程序创建.msi文件?(eclipse)类似,但特别是关于捆绑JRE。

我目前正在构建一个MSI,以便我的产品可以作为Windows Home Server的附加组件安装。安装程序必须是静默的MSI安装程序。

我的产品依赖于Java 1.6。我想将Java捆绑在MSI中,但不一定需要安装JRE,只需将文件复制到我的产品目录并从那里执行即可。

最初,我尝试安装JRE作为第一步。我使用了JRE的静默安装程序,但事实证明,由于JRE通过另一个MSI安装自身,在幕后运行,因此违反了一个MSI安装程序同时运行的规则,因此无法安装JRE。

所以我改为复制JRE文件。我已成功创建了一个包含所有项目的MSI,但它达到了惊人的60MB!其中约有33MB是我的应用程序,其余部分是JRE。我的常规setup.exe捆绑了JRE,大约为30MB,因此我认为后者的压缩效果更好(我还在那里使用Pack200压缩)。
我正在使用WiX构建MSI,并启用了压缩。
最佳方法是什么,可以将JRE与相关应用程序捆绑在MSI中?
1个回答

4

我认为你应该将整个(未压缩的)JRE目录添加到安装程序文件中。然后从给定的已知路径运行你的JRE。许多产品(例如DB2、Oracle 11g甚至WebSphere Application Server)都是这样做的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接