在安装我的Windows桌面应用程序时,我使用izpack创建一个安装程序,然后使用winrun4j从一个exe调用它,并且在安装之后添加另一个用于实际运行应用程序的winrun4j包装器。
问题是,要使win4runj.exe工作,它需要使用正确的Java类型,即如果exe是64位,则必须运行64位jvm,如果exe是32位,则必须运行32位jvm。这可能会使用户感到困惑,所以我打算利用winrun4j使用嵌入式jvm,然后使两个下载可用。
但我的困惑是,对于每个下载,我只想嵌入jvm一次,但无法解决如何做到这一点,因为我有两个前妻(安装程序和程序本身),这能做到吗?
更新
如果我安装了两次JVM (一次是在用izpack构建的install.jar中包含的,一次是添加到压缩文件中以便widgetinstaller.exe可以使用),那么它就可以工作了。
<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>但是我只需要JVM一次,我知道我需要从<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>中删除izpack.xml,但是如何将32位JVM复制到程序安装文件夹中呢?
需要将相同的保存到程序文件夹.
似乎这必须是在izpack之外完成的吗?
编辑
解决方案是使用在Can I install a file using Izpack 5 without it being part of the install.jar built by izpack上描述的Izpack松散包。
但是,对于路径必须设置的内容是非常混乱的,文档错误地暗示您放置了一个相对链接http://izpack.org/documentation/installation-files.html#the-packs-element-packs。
示例
install.xml在C:\code\Widget\installer中
<pack name="Base" loose="true" required="yes" preselected="yes">
<description>JVM</description>
<file src="C:\Code\Widget\JVM" targetdir="$INSTALL_PATH"/>
</pack>当打包时,izpack安装应该有:
JVM
install.jar
setup.exe发布于 2012-08-27 23:34:45
如果JVM嵌入在安装程序中,那么程序就不能使用它。同样,如果JVM嵌入到程序中,那么安装程序就不能使用它。
但是,您仍然可以只使用一个JVM来完成这个任务。这是通过将JVM处理到本地文件来完成的。
因此,当您使用winrun4j启动安装程序时,它将从嵌入式JVM启动,然后在安装结束时,需要将相同的JVM保存到程序文件夹中。
然后,您的程序winrun4j exe可以使用保存到文件夹中的JVM启动程序,方法是将winrun4j中的"vm.location“设置为保存的JVM的位置。
Process:
1) Run the installer exe with the required JVM
2) During the installation save the embedded JVM to a file
3) Once the instillation is complete the program exe can launch using the saved JVMhttps://stackoverflow.com/questions/12144096
复制相似问题